【发布时间】:2011-01-14 00:18:16
【问题描述】:
我有一个 .Net 对象,我已将其序列化为 Xml,并使用 Xml 属性进行装饰。我现在想将相同的对象序列化为 Json,最好使用 Newtonsoft Json.Net 库。
我想直接从内存中的 .Net 对象转到 Json 字符串(无需先序列化为 Xml)。我不希望向类中添加任何 Json 属性,而是希望 Json 序列化程序使用现有的 Xml 属性。
public class world{
[XmlIgnore]
public int ignoreMe{ get; }
[XmlElement("foo")]
public int bar{ get; }
[XmlElement("marco")]
public int polo{ get; }
}
变成
{
"foo":0,
"marco":0
}
【问题讨论】:
-
Newtonsoft Json.Net james.newtonking.com/projects/json/help/… “在确定如何序列化和反序列化 JSON 时,还会查找 DataContract 和 DataMember 属性”。有谁知道 XmlElementAttributes 等是否可以与 DataContractAttributes 互操作?
-
序列化器可以实现两个属性的序列化,但我想这取决于序列化器......(另见social.msdn.microsoft.com/Forums/en/wcf/thread/…)
-
我为 Json.Net 编写了一个小补丁,它允许 DefaultContractResolver 使用 Xml 属性。它适用于上面的简单示例,但在发布之前我需要为更复杂的示例(AnonymousType 等)编写更多测试。
标签: c# xml-serialization json.net