如何将JSON序列化对象转换为JS对象,以便可以访问其属性?

时间:2009-09-28 19:19:59

标签: javascript json web-services

在我的JavaScript中,我想访问通过.NET Web服务生成的JSON序列化对象的属性。如何将JSON数据反序列化为可以在JavaScript中操作的对象?

3 个答案:

答案 0 :(得分:4)

使用http://json.org中的json2.js - 它在提供JSON功能的全局对象上提供parse个对象。它具有作为JSON的ES3.1规范的基础的附加优点,并且如果可能的话将使用JSON的本机实现。这意味着您可以使用以下命令解析json序列化对象:

object = JSON.parse(string)

由于它的实现方式,这意味着如果您在支持JSON的浏览器中查看页面(例如Safari 4,Firefox 3.5,甚至IE8),您将获得快速且安全的解析器自动。

答案 1 :(得分:0)

您可以使用jQuery并通过getJSON

进行网络服务调用

或者您可以使用official json parser

答案 2 :(得分:0)

试用Dojo.json套餐。它包含toJson()和fromJson()函数。

除非真的信任您的数据提供者,否则不应使用eval()。 eval()可以评估函数并调用它们,可以引发随机异常等。使用库,您将处于更安全的一面。

修改::

crescentfresh 指出 dojo.fromJson()只是 eval()的包装器。遗憾的是,这是真的,但即使在JSON.org,他们也说 eval()可能是一个安全问题,他们应该知道他们在谈论什么:)

您可以使用外部JSON解析器(例如:请参阅:code.google.com/p/json-sans-eval),或者只使用 dojo.fromJson()并希望他们在下一版本中对其进行改进