在javascript中访问JSON数据
我正在使用$.post()jQuery函数。我得到以下数据 当我使用代码在javascript中访问JSON数据,javascript,php,jquery,json,Javascript,Php,Jquery,Json,我正在使用$.post()jQuery函数。我得到以下数据 当我使用代码alert(数据)来提醒返回的数据时 [{“sn”:“2”,“res_id”:“101”,“res_所有者id”:“28”,“res_地址”:“英国,伦敦”}] 我希望获得单个数据值,如sn=2 我尝试使用代码警报(数据[0].sn) 我读了下面的文章 但没有找到任何解决办法 有人能帮我获取单个数据吗 谢谢您可以使用JSON字符串将其转换为JavaScript对象 data = JSON.parse(data); al
alert(数据)来提醒返回的数据时代码>
[{“sn”:“2”,“res_id”:“101”,“res_所有者id”:“28”,“res_地址”:“英国,伦敦”}]
我希望获得单个数据值,如sn
=2
我尝试使用代码警报(数据[0].sn)代码>
我读了下面的文章
但没有找到任何解决办法
有人能帮我获取单个数据吗
谢谢您可以使用JSON字符串将其转换为JavaScript对象
data = JSON.parse(data);
alert(data[0].sn);
不过,如果在调用方法时将dataType
指定为json
,jQuery应该能够自动为您做到这一点。当您运行alert
时,您会得到一个包含数据的字符串(而不是[Object Object]
或类似的字符串)。这意味着jQuery没有将响应识别为JSON,因此没有对其进行解析
您应该在服务器上通过使响应具有内容类型:application/json
HTTP响应头来修复此问题
您可以通过添加“JSON”
作为$的第四个参数来解决此问题。post
(告诉jQuery忽略服务器所说的数据,并将其解析为JSON)。您的数据似乎不是JavaScript对象
(它是字符串)首先使用JSON.parse将数据转换为JavaScript对象(数据)
然后警报(数据[0].sn)
如果使用jQuery,则可以使用
var new_data = $.parseJSON(data);
alert(new_data[0].sn);
sMr完全是反向的。它是JSON格式的,需要转换成JavaScript数组。@Quentin否如果它是警报消息中的JSON对象,用户应该会看到类似object[]object的消息。我认为sMr将“JavaScript对象”称为“JSON对象”,因此会产生混淆。没有“JSON对象”。有“JSON字符串”和“JavaScript对象”。JSON代表“JavaScript对象符号”。@Quentin我想你的意思是Object@superphonic-我没有。JSON文本的外部是[]
而不是{}
。您收到的纯粹是字符串,它还不是对象。使用parse方法将其转换为基于json标准的对象。然后您可以将其视为对象,并使用。(点)访问值。