我正在尝试学习如何从我从PHP返回的json obj中检索数据,但我无法弄清楚如何获取值。我的数据看起来像这样:
[{"user_name":"herp"},{"email":"herp.derp@gmail.com"},{"yy":"yyyy"},{"mm":"mm"},{"dd":"dd"}]
我的客户端脚本看起来像这样:
$.ajax({
type : 'POST',
url : 'serverside/get_installningar.php',
dataType : 'json',
success : function(data) {
}
});
我想输入类似data.user_name的内容来检索user_name等等。但有没有办法做到这一点?我已经在论坛中找到了但却找不到合适的东西。
答案 0 :(得分:5)
你拥有的是一系列对象,因此你需要知道获取user_name
的位置,
data[0].user_name
请参阅下面的结构细节,
[
{"user_name":"herp"}, // <-- data[0]
{"email":"herp.derp@gmail.com"}, // <-- data[1]
{"yy":"yyyy"}, // <-- data[2]
{"mm":"mm"}, // <-- data[3]
{"dd":"dd"} // <-- data[4]
]
正如AndrewR指出的那样,
这样可行,但最好修复来自PHP的JSON格式。
{"user_name":"herp","email":"herp.derp@gmail.com","yy":"yyyy","mm":"mm","dd":"dd"}
然后他的原始计划将有效。
答案 1 :(得分:0)
使用它像:
console.log(data[0].user_name);
为了轻松访问json的成员,请尝试以一种不错的格式对其进行虚拟化,以便您可以了解阵列的位置以及对象的位置。
[]
表示数组
{}
表示对象
我建议使用Chrome扩展程序:JsonView
例如,接受this等JSON请求。
只需在标签中打开它就可以很好地合成。 此外,它还会在左下角显示如何访问您正在悬停的内容。
答案 2 :(得分:0)
从jquery 1.4.1开始,你可以原生地这样做
jQuery.parseJSON
在data.responseJSON上执行此操作以转换为JS对象。
请参阅How do I convert a JSON string to a JavaScript object in jQuery?
答案 3 :(得分:0)
使用data.parseJSON();。它以您想要的方式返回一个对象。
答案 4 :(得分:0)
您实际上是返回一个数组而不是一个json对象
您的数据需要如下所示:
{{"user_name":"herp"},{"email":"herp.derp@gmail.com"},{"yy":"yyyy"},{"mm":"mm"},{"dd":"dd"}}
尝试安装Firebug以调试页面的返回值(如果格式正确的JSON。
)