【问题标题】:General purpose json serializer/deserializer in jQuery?jQuery中的通用json序列化器/反序列化器?
【发布时间】:2009-05-01 18:01:03
【问题描述】:

重复: Serializing to JSON in jQuery

似乎 jQuery 内置了 JSON 序列化器/反序列化器,因为它能够实现 .getJSON 之类的东西。是否可以使用内置的 jQuery JSON 处理器本身作为通用 JSON 处理器(即调用 jQuery.something() 来序列化/反序列化我自己的数据),从而无需单独的 JSON 库?

更新:上面引用的问题中的回复说 jQuery 中没有 JSON 序列化代码。 JSON反序列化怎么样? .getJSON 是如何实现的,为什么不公开反序列化能力以供一般使用?

Update2:我已经在使用来自 json.org 的 json2,我正在尝试摆脱它,因为我所做的只是简单的反序列化。听起来 jquery 真的只是在做 eval 吗?我有印象that wasn't so good for security

eval 函数非常快。 但是,它可以编译和执行 任何 JavaScript 程序,所以可以 是安全问题

【问题讨论】:

    标签: jquery json


    【解决方案1】:

    听起来您需要的是http://www.json.org/js.html 提供的序列化/反序列化实现,它提供 JSON.parse() 和 JSON.stringify(),可以轻松(反)序列化和验证数据。

    如果您只是想将 JSON 文本转换为对象,请使用 eval() 函数。

    【讨论】:

      【解决方案2】:

      jQuery 现在只使用 eval()。 jQuery 1.4 将在支持它的浏览器中支持浏览器原生 JSON 反序列化。如果您愿意,现在可以通过using jQuery's dataFilter callback to avoid the eval() when possible 来利用它(将其放入 $.ajaxSetup 以自动影响所有 $.ajax()、$.post()、$.getJSON() 调用)。

      【讨论】:

        【解决方案3】:

        我刚开始使用 jQuery,我发现最简单的方法是从 JSON.org 中删除 JSON2.js 库,然后扩展 jQuery 以使用它。

        【讨论】:

          【解决方案4】:

          我相信 jQuery 只需 eval() 即可反序列化传入的 json 数据。不过我不知道任何内置的序列化。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-11-22
            • 2015-11-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多