从json获取数据到jquery

时间:2012-11-02 14:35:01

标签: php jquery json

我正在尝试学习如何从我从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等等。但有没有办法做到这一点?我已经在论坛中找到了但却找不到合适的东西。

5 个答案:

答案 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":"d‌​d"}然后他的原始计划将有效。

答案 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。