Как получить доступ к имени/значению объекта 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?
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.разбор.
скрипку здесь
Я думаю, что вы должны упомянуть
dataType: 'json'в конфигурации ajax и для доступа к этому значению:data[0].name
вот дружеский совет. Используйте что-то вроде Chrome Developer Tools или Firebug для Firefox, чтобы проверить ваши вызовы Ajax и результаты.
вы также можете потратить некоторое время на понимание вспомогательную библиотеку как подчеркивание, который дополняет jQuery и дает вам более 60 полезных функций для управления объектами данных с помощью JavaScript.
Comments