【问题标题】:Problems Parsing JSON from PHP从 PHP 解析 JSON 的问题
【发布时间】:2009-10-08 11:36:50
【问题描述】:

我通过 AJAX 从我的服务器收到一个响应,其中包含一个 json_encode(php 函数)数组。但是,我很难解析它。

我可以这样做:

alert(response);

但它只是给了我一堆这样的文字:

[{"user_id":"Dev_V2_MEH_0910_M03_v03c_NEW_CODE_03"......"grouper_opae_algorithm":"nap_v42lp"}]

请注意,我删减了很多。我试过这个:

alert(response[0].user_id);

这只是让我不确定。

我做错了什么?

【问题讨论】:

    标签: php javascript json


    【解决方案1】:

    您将其作为字符串返回 - 您需要将其转换为对象。

    如果您使用像 jQuery 或 Prototype 这样的库,那么将有一个内置方法来执行此操作。否则你可以使用eval:

    object = eval('(' + response + ')');
    

    这确实打开了一些安全漏洞 - 如果一个函数被注入到 JSON 中,它将被执行。

    【讨论】:

    【解决方案2】:

    解析 JSON 最基本的方法是使用 eval() 命令:

    json = eval(response);
    alert(json[0].user_id);
    

    如果源不受信任,最好使用 Prototype 或 jQuery 等库来帮助清理 JSON。

    【讨论】:

    • Source 受信任它自己的服务器,但我更喜欢使用 JQuery。是getJSon()函数吗?
    • 您需要在响应周围加括号
    【解决方案3】:

    你也可以downloadofficial JSON parser 用于javascript,这会让你这样做:

    var myObj = JSON.parse(respsonse);
    

    【讨论】:

      【解决方案4】:

      Crockford 不推荐使用 eval() 函数。

      http://json.org/js.html

      你可以改用他的 json parse/stringify 函数

      http://json.org/json2.js

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多