使用 C# 将没有父节点的 XML 字符串转换为 JSON

Dan*_*ngs 0 c# xml json

我有一个不包含父节点的 XML 字符串。此 XML 是 API 的 json 请求的表示形式。看似毫无意义,但这样做是为了让非程序员也能轻松读取文件。为了将 XML 转换为 json,我所看到的几乎所有内容都说将字符串转换为 XMLDocument,然后使用以下命令获取 json。

string jsonText = JsonConvert.SerializeXmlNode(doc);
Run Code Online (Sandbox Code Playgroud)

我这里遇到的问题是 xml 并不是真正有效,因此无法将其转换为 xml 文档。我真正想要的是能够做到这一点。

string jsonText = JsonConvert.SerializeXmlNode(doc.InnerXml);
Run Code Online (Sandbox Code Playgroud)

这是行不通的,因为innerXML 是一个字符串而不是一个对象。我已经能够通过创建根元素然后仅使用子字符串来剪切结果字符串来使其工作,但这似乎毫无意义。必须有一种更好的方法来做到这一点,而不必添加 xml,然后必须将其从 json 中删除。是否可以将像下面这样的一段xml转换成像下面例子一样的json。

<rootnode>
    <fielda>a</fielda>
    <fieldb>b</fieldb>
</rootnode>
Run Code Online (Sandbox Code Playgroud)

转换为

  {
    "fielda": "a",
    "fieldb": "b"
  }
Run Code Online (Sandbox Code Playgroud)

Cha*_*ger 5

有一个需要布尔值的重载SerializeXmlNodeomitRootObject

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true);
Run Code Online (Sandbox Code Playgroud)