【发布时间】:2010-09-16 02:05:36
【问题描述】:
我记得听说微软必须为其 AJAX 框架实现 JSON 序列化的方式与大多数其他库不同。这是真的?如果有,有什么不同?
【问题讨论】:
我记得听说微软必须为其 AJAX 框架实现 JSON 序列化的方式与大多数其他库不同。这是真的?如果有,有什么不同?
【问题讨论】:
我不确定其他任何事情,但我确实读到过他们必须进行一些修补才能使日期/时间工作(请参阅post)。
【讨论】:
有几个不同之处,两者都与安全性有关。首先是他们的 web 服务默认只接受 http POST。这样做是为了防止 JSON 劫持。您可以禁用此功能,并阅读更多相关信息here。
第二个区别与返回的数据有关。如果您通过使用 [WebMethod] 属性装饰静态对象来在代码隐藏中创建您的 Web 服务,则返回的 JSON 被包装在一个对象 naemd 'd' 中。这是为了防止JSON array constructor attacks。
是的,虽然这些代表了正确的事情 (tm),但它们可能会使与第三方库的交互变得困难。
【讨论】:
正如@Chris 所说,除了 Dates 的处理方式之外,没有什么特别之处。 JSON 规范没有对日期进行序列化的本地方式。
如果你的 JSON 字符串中没有返回任何日期,你可以使用任何你想要的 deserializer。 MS AJAX 很好,因为它确实有办法首先验证 JSON 字符串是否有效。
【讨论】: