【问题标题】:Difference between DataContractSerializer and DataContractJsonSerializerDataContractSerializer 和 DataContractJsonSerializer 的区别
【发布时间】:2018-04-09 10:51:36
【问题描述】:

DataContractSerializerDataContractJsonSerializer 有什么区别? 等级、用途、速度有什么区别吗?

【问题讨论】:

  • -1:在提问之前,您确实尝试阅读 MSDN 描述。 IE。当操作明显不同时,速度很少受到关注......
  • 当然 MSDN 帮了很多忙,不幸的是,在这个方面,除了说一个用于 JSON,另一个用于 XML 之外,没有更多关于它的说明......真的很糟糕的文档。 @AlexeiLevenkov
  • 这个问题现在是谷歌上的热门问题,所以我很高兴它得到了答案。

标签: c# .net


【解决方案1】:

直接来自 MSDN

DataContractSerializer---使用提供的数据契约将类型的实例序列化和反序列化为 XML 流或文档。这个类不能被继承。

DataContractJsonSerializer---将对象序列化为JavaScript Object Notation (JSON),并将JSON数据反序列化为对象。这个类不能被继承。

在速度上我认为 json 可能会更快

【讨论】:

    【解决方案2】:

    除了明显的序列化格式差异外,各个序列化程序能够处理的内容也存在限制。

    特别是,DataContractSerializer 能够通过将DataContractAttribute 构造函数的IsReference 属性设置为true 来处理circular referencesDataContractJsonSerializer 无法处理这种情况,因为在 JSON (according to the WriteObject error message) 中没有标准化的引用表示。

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      相关资源
      最近更新 更多