没有父节点的XML字符串到c#的JSON

本文关键字:JSON 字符串 XML 父节点 | 更新日期: 2023-09-27 17:51:22

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

string jsonText = JsonConvert.SerializeXmlNode(doc);

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

string jsonText = JsonConvert.SerializeXmlNode(doc.InnerXml);

这不起作用,因为innerXML是字符串而不是对象。我已经能够让它通过创建一个根元素,然后只是使用子字符串来削减结果字符串工作,但这似乎毫无意义。必须有一个更好的方法来做到这一点,而不必添加xml,只是必须从json之后删除它。是否有可能将一段xml(如下面的xml)转换为json(如下面的示例)?

<rootnode>
    <fielda>a</fielda>
    <fieldb>b</fieldb>
</rootnode>

皈依

  {
    "fielda": "a",
    "fieldb": "b"
  }

没有父节点的XML字符串到c#的JSON

SerializeXmlNode过载,接受布尔值omitRootObject:

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true);

JsonConvert.SerializeXmlNode有一个重载的方法,你可以用它来忽略根。

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true);

第三个参数用于省略RootObject