如何访问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。

在这里拨弄

http://jsfiddle.net/H2yN6/

如果你的回复是{'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处理数据对象的有用函数。