重复: 在jQuery中序列化为JSON

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

更新:上面提到的问题中的回答说jQuery中没有JSON序列化代码。 JSON反序列化怎么样? .getJSON是如何实现的,为什么暴露的反序列化功能不能用于一般用途?

Update2:我已经在json.org上使用了json2,我正试图摆脱它,因为我所做的只是简单的反序列化。听起来像jquery真的只是在做eval吗?我的印象是对安全性不太好

  

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

有帮助吗?

解决方案

jQuery现在只使用eval()。 jQuery 1.4将在支持它的浏览器中包含对浏览器本机JSON反序列化的支持。你现在可以通过使用jQuery的dataFilter回调来尽可能避免使用eval()(将它放在$ .ajaxSetup中以自动影响所有$ .ajax(),$。postt(),$ .getJSON()调用。) p>

其他提示

您需要的是 http://www.json中提供的序列化/反序列化实现。 org / js.html 提供JSON.parse()和JSON.stringify(),方便(反)序列化和验证数据。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top