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
?
答案 0 :(得分:99)
除了解析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()
解析它们并检索上述数据。
答案 1 :(得分:28)
您收到的JSON是字符串。您必须将其转换为JSON对象 您已经评论了最重要的代码行
data = JSON.parse(data);
或者如果您使用的是jQuery
data = $.parseJSON(data)
答案 2 :(得分:7)
如果您的回复类似于{'customer':{'first_name':'John','last_name':'Cena'}}
var d = JSON.parse(response);
alert(d.customer.first_name); // contains "John"
谢谢,
答案 3 :(得分:6)
你应该做
alert(data[0].name); //Take the property name of the first array
而不是
alert(data.myName)
jQuery应该能够为你嗅探dataType,即使你没有设置它也不需要JSON.parse。
在这里摆弄
答案 4 :(得分:4)
试试此代码..
function (data) {
var json = jQuery.parseJSON(data);
alert( json.name );
}
答案 5 :(得分:2)
我认为您应该在ajax配置中提及dataType: 'json'
并访问该值:
data[0].name
答案 6 :(得分:0)
这是一条友好的建议。对Firefox使用Chrome Developer Tools或Firebug之类的内容来检查Ajax调用和结果。
您可能还需要花一些时间来理解辅助库,例如Underscore,它补充了jQuery,并为您提供了60多个用JavaScript操作数据对象的有用函数。
答案 7 :(得分:0)
您可能想尝试这种方法:
var str ="{ "name" : "user"}";
var jsonData = JSON.parse(str);
console.log(jsonData.name)
//Array Object
str ="[{ "name" : "user"},{ "name" : "user2"}]";
jsonData = JSON.parse(str);
console.log(jsonData[0].name)
答案 8 :(得分:0)
如果 json 包含 name 属性作为默认值。我们如何获得价值。从下面的 json 我需要我的名字。 例子: [{"default": "myname" ,"address": "myaddress"}]