78
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" }]

如何按名称访问值,以便填写我的第一个警报myNamename

4

8 回答 8

115

除了解析 JSON,您还可以执行以下操作:

$.ajax({
  ..
  dataType: 'json' // using json, jquery will make parse for  you
});

要访问 JSON 的属性,请执行以下操作:

data[0].name;

data[0].address;

为什么需要data[0],因为 data 是一个数组,所以你需要data[0](第一个元素)检索它的内容,它给你一个 object {"name":"myName" ,"address": "myAddress" }

并且访问对象规则的属性是:

Object.property

或者有时

Object["property"] // in some case

所以你需要

data[0].name等等以获得你想要的。


如果你不

设置dataType: json然后你需要使用$.parseJSON()和检索数据像上面一样解析它们。

于 2012-06-05T10:09:34.547 回答
30

您收到的 JSON 是字符串。您必须将其转换为 JSON 对象您已注释了最重要的代码行

data = JSON.parse(data);

或者,如果您使用的是 jQuery

data = $.parseJSON(data)
于 2012-06-05T10:08:33.010 回答
16

如果你的反应是{'customer':{'first_name':'John','last_name':'Cena'}}

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

谢谢,

于 2014-11-27T15:19:57.773 回答
6

你应该做

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

并不是

 alert(data.myName)

即使您没有设置它,jQuery 也应该能够为您嗅探数据类型,因此不需要 JSON.parse。

在这里摆弄

http://jsfiddle.net/H2yN6/

于 2012-06-05T10:09:43.883 回答
4

试试这个代码..

function (data) {


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


}
于 2012-06-05T10:09:35.787 回答
3

您可能想尝试这种方法:

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)
于 2019-03-26T11:57:23.123 回答
2

我认为您应该dataType: 'json' 在 ajax 配置中提及并访问该值:

data[0].name
于 2012-06-05T10:15:19.160 回答
0

这是一个友好的建议。使用Chrome Developer ToolsFirebug for Firefox 之类的工具来检查您的 Ajax 调用和结果。

您可能还想花一些时间来了解像Underscore这样的帮助程序库,它补充了 jQuery,并为您提供了 60 多个有用的函数来使用 JavaScript 操作数据对象。

于 2012-06-05T10:27:09.400 回答