C# XDocument到JSON、JsonProperties
我正在与C#(ASP.Net、MVC)和Newtonsoft合作进行JSON序列化。我得到了一个XDocument,下面是我想要的JSON格式的视图C# XDocument到JSON、JsonProperties,c#,json,properties,json.net,linq-to-xml,C#,Json,Properties,Json.net,Linq To Xml,我正在与C#(ASP.Net、MVC)和Newtonsoft合作进行JSON序列化。我得到了一个XDocument,下面是我想要的JSON格式的视图 <group> <name>Group 1</name> <description><p>Description</p></description> <section> .. </section> <sect
<group>
<name>Group 1</name>
<description><p>Description</p></description>
<section>
..
</section>
<section>
..
</section>
</group>
现在的问题是,描述被反序列化,所以我有
... "description": { "p": "Description Text" }
当按原样发布时,将显示为“[Object]”
- 有没有一种方法可以在不生成完全反序列化的类的情况下为XDocument(通常)设置一些JsonProperties
- 如果不是,有没有办法设置一些JsonProperty,说“将其保留为字符串,不要进一步序列化”
- 如果我要为此使用XSD生成的类,我需要设置什么“类型”?“任何类型”
致以最诚挚的问候。使用Json.NET,您可以使用以下行将XML节点直接序列化为Json:
string json = JsonConvert.SerializeXmlNode(xmlNode);
要将XDocument
转换为XmlDocument
请参见以下问题:
然后,您可以将转换后的
XmlDocument
用作SerializeXmlNode()
的参数,因为它继承自XmlNode
,我之所以添加这个答案,是因为在查找“c#将xml转换为json XDocument”时,它在谷歌搜索中排名靠前
这个答案使用了更现代的
XNode
vsXmlNode
我不想使用JsonConvert,因为它不使用相同的序列化程序设置。这不是一个真正的问题,我知道如何将Json转换为XmlDocument。但您基本上回答了我的问题,将XML转换为对象,而不是直接。我需要知道的最后一件事是我必须在XSD文件中设置哪种类型。也许这是一个愚蠢的问题,但是为什么你不使用SerializeXNode
而不是SerializeXmlNode
@JPHellemons我不知道。也许在我写答案的时候,这个方法还不存在。但我真的不知道了。我最初投了反对票,直到我意识到这个答案是SerializeXNode
,而另一个答案是SerializeXmlNode
,并且不是同一个答案:)谢谢你的支持,祝你好运!:)
string json = JsonConvert.SerializeXmlNode(xmlNode);
string json = JsonConvert.SerializeXNode(xDocument);