How to access JSON Object name/value?

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;


},

As you can see this callback function of $.ajax taking JSON data from controller.

For example:

[{"name":"myName" ,"address": "myAddress" }]

In this case my first alert giving me undefined and second/third alert popup comes up with:

[{"name":"myName" ,"address": "myAddress" }]

How can I access value by name so that my first alert filled out with myName which is value of name?

455182 次浏览

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

data = JSON.parse(data);

或者如果您正在使用 jQuery

data = $.parseJSON(data)

不用解析 JSON,您可以这样做:

$.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等等,以得到你想要的。


If you not

设置 dataType: json,然后您需要解析他们使用 $.parseJSON()和检索数据,如上所述。

试试这个密码。

function (data) {




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




}

你应该这么做

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

而不是

 alert(data.myName)

JQuery 应该能够为您嗅探 dataType,即使您没有设置它,因此不需要 JSON.parse。

在这里拉小提琴

Http://jsfiddle.net/h2yn6/

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

data[0].name

Here is a friendly piece of advice. Use something like Chrome 开发工具 or 纵火犯 for Firefox to inspect your Ajax calls and results.

您可能还需要花一些时间来理解类似 下划线这样的帮助器库,它补充了 jQuery,并为您提供了60多个用于使用 JavaScript 操作数据对象的有用函数。

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

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

谢谢,

你可能想试试这种方法:

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)