2014-01-23 42 views
-1

我正在使用$ .post()jQuery函数。我得到以下数据在javascript中访问JSON数据

而我警告使用代码alert(data);返回的数据。

[{"sn":"2","res_id":"101","res_owner_id":"28","res_address":"uk,london"}]

我想获得像sn = 2

我的代码alert(data[0].sn);

我阅读以下计算器的帖子试过单一数据值。

How can I get value through JSON array like query

Search an array for matching attribute

get one item from an array of name,value JSON

,但无法找到任何解决方案。

任何人都可以帮助我获得单一数据?

感谢

+1

你收到的是什么纯粹的字符串,它不是一个对象。使用parse方法将其转换为基于json标准的对象。那么你可以把它当作对象和使用。 (点)来访问该值。 – Timeless

回答

2

您的数据似乎不是一个JavaScript object(这是字符串)首先将数据转换为JavaScript objectJSON.parse(data)然后alert(data[0].sn)

+0

你是什么意思,它不是JSON格式? – rid

+0

sMr完全倒退。它**是** JSON格式,需要转换为JavaScript数组。 – Quentin

+0

@Quentin否,如果它是警报消息的json对象,则用户应该看到类似object []对象的消息。 – semirturgay

3

您可以使用JSON.parse()的JSON字符串变成一个JavaScript对象。

data = JSON.parse(data); 
alert(data[0].sn); 

的jQuery应该能为你做的,虽然自动,如果指定dataTypejson同时调用$.post()方法。

2

运行alert时,会得到一个包含数据的字符串(而不是[Object object]或类似的文件)。这意味着jQuery没有将响应识别为JSON,因此它没有解析它。

您应该通过使响应具有Content-Type: application/json HTTP响应标头来解决此问题。

您可以通过添加"JSON"作为$.post的第四个参数(以告知jQuery忽略服务器说的数据并将其解析为JSON)来破解此操作。

0

如果你正在使用jQuery,您可以使用

var new_data = $.parseJSON(data); 
alert(new_data[0].sn);