Как получить доступ к имени/значению объекта 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" }]



в этом случае мое первое предупреждение дает мне неопределенное и второе / третье всплывающее предупреждение приходит с:



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



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

918   7  

7 ответов:

вместо разбора 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 и так далее, чтобы получить то, что вы хотите.


если вы не

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

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

data = JSON.parse(data);

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

data = $.parseJSON(data)

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

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

спасибо,

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

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

, а не

 alert(data.myName)

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

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

http://jsfiddle.net/H2yN6/

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

function (data) {


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


}

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

data[0].name

вот дружеский совет. Используйте что-то вроде Chrome Developer Tools или Firebug для Firefox, чтобы проверить ваши вызовы Ajax и результаты.

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

Comments

    Ничего не найдено.