重复: 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程序,所以可以 是安全问题
答案 0 :(得分:3)
您需要的是http://www.json.org/js.html提供的序列化/反序列化实现,它提供了JSON.parse()和JSON.stringify(),可以轻松(反)序列化和验证数据。
如果您只想将JSON文本转换为对象,请使用eval()函数。
答案 1 :(得分:2)
我刚刚开始使用jQuery,我发现最简单的方法是从JSON.org中删除JSON2.js库,然后扩展jQuery以使用它。
答案 2 :(得分:2)
jQuery现在只使用eval()。 jQuery 1.4将在支持它的浏览器中包含对浏览器本机JSON反序列化的支持。你现在可以通过using jQuery's dataFilter callback to avoid the eval() when possible(将它放在$ .ajaxSetup中以自动影响所有$ .ajax(),$。postt(),$ .getJSON()调用)来利用它。
答案 3 :(得分:1)
我相信将传入的json数据反序列化为jQuery,只需eval()即可。我不知道内置的任何序列化。