DataContractJsonSerializer 不能处理 XML,它仅支持 JSON 序列化与反序列化;处理 XML 应使用 XmlSerializer 或 DataContractSerializer。

DataContractJsonSerializer 不能处理 XML。
它专用于 JSON 序列化与反序列化,名字里的 “Json” 就已明确其用途。如果你需要处理 XML,应使用 XmlSerializer 或 DataContractSerializer(注意:不是 DataContractJsonSerializer)。
NetShop软件特点介绍: 1、使用ASP.Net(c#)2.0、多层结构开发 2、前台设计不采用任何.NET内置控件读取数据,完全标签化模板处理,加快读取速度3、安全的数据添加删除读取操作,利用存储过程模式彻底防制SQL注入式攻击4、前台架构DIV+CSS兼容IE6,IE7,FF等,有利于搜索引挚收录5、后台内置强大的功能,整合多家网店系统的功能,加以优化。6、支持三种类型的数据库:Acces
为什么 DataContractJsonSerializer 不支持 XML
- 它内部只实现 JSON 格式的读写逻辑(基于 JsonReader/JsonWriter)。 - 尝试用它反序列化 XML 字符串会直接抛出 SerializationException 或格式错误异常。 - 它不识别 XML 标签、命名空间、DOCTYPE 等任何 XML 特性。处理 XML 的正确选择
- XmlSerializer:适合面向 public 类型、无 DataContract 特性要求的场景,对属性/字段名映射更直观。 - DataContractSerializer:需标记 `[DataContract]` 和 `[DataMember]`,支持版本兼容、命名空间控制,适合 WCF 或契约明确的 XML 交换。 - 示例(用 DataContractSerializer 读 XML): ```csharp var serializer = new DataContractSerializer(typeof(MyClass)); using (var reader = XmlReader.Create("data.xml")) { var obj = (MyClass)serializer.ReadObject(reader); } ```如果已有 JSON 工具链但想转 XML
- 不要强行让 DataContractJsonSerializer 处理 XML。 - 可先用 `DataContractJsonSerializer` 解析 JSON 得到对象,再用 `XmlSerializer` 或 `DataContractSerializer` 将该对象输出为 XML。 - 或借助通用中间格式(如 `JObject`)做转换,但需自行处理类型和结构映射。不复杂但容易忽略。









