Microsoft JSON 对象序列化是否与“正常”序列化不同?

Does the Microsoft JSON object serialization differ from the "normal" serialization?

提问人:casademora 提问时间:10/9/2008 最后编辑:Chilledratcasademora 更新时间:5/4/2012 访问量:562

问:

我记得听说 Microsoft 为其 AJAX 框架实现 JSON 序列化的方式与大多数其他库不同。这是真的吗?如果是这样,它有什么不同?

jquery json

评论


答:

2赞 Chris Shaffer 10/9/2008 #1

我不确定其他任何事情,但我确实读到了他们必须做的一些修补工作才能使日期/时间发挥作用(见帖子)。

2赞 tsimon 10/9/2008 #2

有几个区别,两者都与安全性有关。首先,默认情况下,他们的 Web 服务只接受 http POST。这样做是为了防止 JSON 劫持。您可以禁用此功能,并在此处阅读有关它的更多信息。

第二个区别与返回的数据有关。如果通过使用 [WebMethod] 属性修饰静态对象,在代码隐藏中使用创建 Web 服务,则返回的 JSON 将包装在对象 naemd 'd' 中。这是为了防止 JSON 数组构造函数攻击

是的,虽然这些代表了正确的做法 (tm),但它们会使与第三方库的交互变得困难。

0赞 Aaron Powell 10/9/2008 #3

正如@Chris所说,除了日期的处理方式之外,没有什么特别之处。JSON 规范没有序列化日期的本机方式。

如果 JSON 字符串中没有返回任何日期,则可以使用所需的任何反序列化程序。MS AJAX 很好,因为它确实有一种方法可以首先验证 JSON 字符串是否有效。