如何访问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
数据的callback函数。
例如:
[{"name":"myName" ,"address": "myAddress" }]
在这种情况下,我的第一个警告给我未定义和第二/第三个警报popup窗口:
[{"name":"myName" ,"address": "myAddress" }]
我怎样才能访问价值的名称,以便我的第一个警报填写myName
这是name
价值?
而不是parsingJSON,你可以像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()
parsing它们并检索像上面的数据。
你收到的JSON是string。 您必须将其转换为JSON对象您已经评论了最重要的代码行
data = JSON.parse(data);
或者如果你正在使用jQuery
data = $.parseJSON(data)
你应该做
alert(data[0].name); //Take the property name of the first array
并不是
alert(data.myName)
jQuery应该能够为你嗅探dataType,即使你没有设置它,所以不需要JSON.parse。
在这里拨弄
如果你的回复是{'customer':{'first_name':'John','last_name':'Cena'}}
var d = JSON.parse(response); alert(d.customer.first_name); // contains "John"
谢谢,
试试这个代码
function (data) { var json = jQuery.parseJSON(data); alert( json.name ); }
我想你应该在ajaxconfiguration中提到dataType: 'json'
并访问该值:
data[0].name
这是一个友好的build议。 使用类似Chrome Developer Tools或Firefox的Firebug来检查您的Ajax调用和结果。
您可能还需要投入一些时间来理解像Underscore这样的辅助库,它补充了jQuery,并为您提供了60多个用JavaScript处理数据对象的有用函数。