【问题标题】:JSON concept with javascript & PHPJSON 概念与 javascript & PHP
【发布时间】:2011-02-20 22:15:11
【问题描述】:

我需要有人来解释一下这个问题。

当一个人进行 AJAX 调用时,它会调用一个 php 脚本,该脚本会回显 json_encode 内容,以便 javascript 可以处理它。注意:假设我们在 php 脚本中将 header 设置为 json。

javascript 从 php 脚本接收的数据,我们必须使用 eval 或 json 的库来解析它吗?编辑:是不是因为它将从 php 文件中收到的数据视为文本而不是 javascript?

我们可以在 php 脚本返回的数据上使用 javascript 点符号吗?或者在我们可以使用点表示法之前,这些数据是否必须先转换为 javascript 对象?

提前谢谢你。

【问题讨论】:

    标签: php javascript json


    【解决方案1】:

    JSON 只是一个字符串,恰好符合 Javascript 的对象语法(因此缩写为:JavaScript Object Notation。)

    要将其转换为 Javascript 对象,您可以使用 eval 函数,但为了更高的安全性,建议使用现代浏览器中包含的 JSON 对象,或者您选择的 Javascript 库提供的函数:

    var json = '{"thing":1, "thang":"two"}';
    
    var obj1 = eval('('+json+')'); // easier, less secure
    var obj2 = JSON.parse(json); // secure, but doesn't work everywhere
    var obj3 = jQuery.parseJSON(json); // secure, works everywhere
    

    许多库还将作为 Ajax 请求的一部分为您处理转换。以下是 jQuery 的做法:

    jQuery.get('http://domain.com/path/to/request', function(obj)
    {
        // string is automatically converted to an object,
        // usable as array or with dot notation
        alert(obj.thing);
        alert(obj['thang']);
    },
    'json'); // indicates that we are requesting json and not html
    

    【讨论】:

    • 从技术上讲,它是 JavaScript 对象表示法。
    【解决方案2】:

    您始终可以使用 jQuery、Mootools、Prototype 等库将 JSON 文本解码为 Javascript 变量。

    【讨论】:

      【解决方案3】:

      JSON 类似于 PHP 的序列化 :) 它是一种将字符串转换为对象并返回的方法 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 2011-02-18
        • 2011-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多