Подтвердить что ты не робот

Как получить доступ к имени/значению объекта JSON?

function (data) {
    //add values based on activity type
    //data = JSON.parse(data);
    //alert(abc.Phone1);

    alert(data.myName)

    alert(data.toString());
    if (activityType == "Phone") {
    }
    return;

},

Как вы можете видеть эту функцию обратного вызова $.ajax, принимая данные JSON от контроллера.

Например:

[{"name":"myName" ,"address": "myAddress" }]

В этом случае мое первое предупреждение, дающее мне undefined и всплывающее всплывающее/второе оповещение, выглядит следующим образом:

[{"name":"myName" ,"address": "myAddress" }]

Как мне получить доступ к значению по имени, чтобы мое первое предупреждение заполнилось с помощью myName, которое является значением name?

4b9b3361

Ответ 1

Вместо анализа JSON вы можете сделать, как followng:

$.ajax({
  ..
  dataType: 'json' // using json, jquery will make parse for  you
});

Чтобы получить доступ к свойству JSON, выполните следующие действия:

data[0].name;

data[0].address;

Зачем вам нужен data[0], потому что данные являются массивом, поэтому для его получения содержимого вам нужен data[0] (первый элемент), который дает вам объект {"name":"myName" ,"address": "myAddress" }.

И для доступа к свойствам правила объекта:

Object.property

или иногда

Object["property"] // in some case

Итак, вам нужно

data[0].name и т.д., чтобы получить то, что вы хотите.


Если вы не

установите dataType: json, тогда вам нужно проанализировать их с помощью $.parseJSON() и получить данные, как указано выше.

Ответ 2

JSON, который вы получаете, находится в строке. Вы должны преобразовать его в объект JSON Вы прокомментировали наиболее важную строку кода

data = JSON.parse(data);

Или, если вы используете jQuery

data = $.parseJSON(data)

Ответ 3

Вы должны сделать

alert(data[0].name); //Take the property name of the first array

а не

 alert(data.myName)

jQuery должен быть в состоянии обнюхать dataType для вас, даже если вы не настроите его так, чтобы он не нуждался в JSON.parse.

скрипка здесь

http://jsfiddle.net/H2yN6/

Ответ 4

Если вы отвечаете как {'customer':{'first_name':'John','last_name':'Cena'}}

var d = JSON.parse(response);
alert(d.customer.first_name); // contains "John"

Спасибо,

Ответ 5

Попробуйте этот код.

function (data) {


var json = jQuery.parseJSON(data);
alert( json.name );


}

Ответ 6

Я думаю, вы должны упомянуть dataType: 'json' в конфигурации ajax и получить доступ к этому значению:

data[0].name

Ответ 7

Вот дружелюбный совет. Используйте что-то вроде Инструменты разработчика Chrome или Firebug для Firefox для проверки ваших вызовов и результатов Ajax.

Вы также можете потратить некоторое время на понимание вспомогательной библиотеки, например Underscore, которая дополняет jQuery и дает вам более 60 полезных функций для управления объектами данных с помощью JavaScript.