如何访问JSON对象名称/值?

时间:2012-06-05 10:05:03

标签: jquery ajax json asp.net-mvc-3

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

9 个答案:

答案 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。

在这里摆弄

http://jsfiddle.net/H2yN6/

答案 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 ToolsFirebug之类的内容来检查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"}]