Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中访问JSON数据_Javascript_Php_Jquery_Json - Fatal编程技术网

在javascript中访问JSON数据

在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

我正在使用$.post()jQuery函数。我得到以下数据

当我使用代码
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标准的对象。然后您可以将其视为对象,并使用。(点)访问值。