0

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

4

5 回答 5

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"}然后他原来的计划就会奏效。

于 2012-11-02T14:37:10.887 回答
0

像这样使用它:

 console.log(data[0].user_name);

为了方便访问您的 json 成员,请尝试以一种不错的格式对其进行虚拟化,以便您了解数组在哪里以及对象在哪里。

[]表示数组

{}表示对象

我推荐一个 chrome 扩展:JsonView

例如,接受这样的 JSON请求

只需在选项卡中打开它,它就会很好地格式化。它还在左下角向您显示如何访问您悬停的内容。

于 2012-11-02T14:36:33.727 回答
0

从 jquery 1.4.1 开始,您可以本机执行此操作

jQuery.parseJSON

在 data.responseJSON 上执行此操作以转换为 JS 对象。

请参阅如何在 jQuery 中将 JSON 字符串转换为 JavaScript 对象?

于 2012-11-02T14:37:07.700 回答
0

使用data.parseJSON(); . 它完全按照您想要的方式返回一个对象。

于 2012-11-02T14:39:02.280 回答
0

你实际上是返回一个数组而不是一个 json 对象

您的数据需要如下所示:

{{"user_name":"herp"},{"email":"herp.derp@gmail.com"},{"yy":"yyyy"},{"mm":"mm"},{"dd":"dd"}}

如果页面格式正确,请尝试安装 Firebug 以调试页面的返回值。

于 2012-11-02T14:39:17.733 回答