C# XDocument到JSON、JsonProperties

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

我正在与C#(ASP.Net、MVC)和Newtonsoft合作进行JSON序列化。我得到了一个XDocument,下面是我想要的JSON格式的视图

<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
vs
XmlNode

我不想使用JsonConvert,因为它不使用相同的序列化程序设置。这不是一个真正的问题,我知道如何将Json转换为XmlDocument。但您基本上回答了我的问题,将XML转换为对象,而不是直接。我需要知道的最后一件事是我必须在XSD文件中设置哪种类型。也许这是一个愚蠢的问题,但是为什么你不使用
SerializeXNode
而不是
SerializeXmlNode
@JPHellemons我不知道。也许在我写答案的时候,这个方法还不存在。但我真的不知道了。我最初投了反对票,直到我意识到这个答案是
SerializeXNode
,而另一个答案是
SerializeXmlNode
,并且不是同一个答案:)谢谢你的支持,祝你好运!:)
string json = JsonConvert.SerializeXmlNode(xmlNode);
string json = JsonConvert.SerializeXNode(xDocument);