2009-05-01 34 views
1

重复:Serializing to JSON in jQueryjQuery中的通用json串行器/解串器?

似乎有内置的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程序,所以可以 有安全问题

回答

2

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

1

我相信反序列化传入的JSON数据的jQuery只是eval()函数的它。我不知道任何内置的序列化。

2

我刚开始使用jQuery,我觉得这是最简单的只是从JSON.org在下降的JSON2.js库,然后扩展jQuery来使用它。

3

听起来像你需要的是在http://www.json.org/js.html提供的序列化/反序列化实现,它提供了JSON.parse()和JSON.stringify(),使得序列化和验证数据变得容易。

如果你想简单的JSON文本转换成一个对象,然后使用eval()函数。