在我的JavaScript中,我想访问通过.NET Web服务生成的JSON序列化对象的属性。如何将JSON数据反序列化为可以在JavaScript中操作的对象?
答案 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()并希望他们在下一版本中对其进行改进