将 XML 转换为 JSON 格式

2022-09-02 11:51:10

我必须将docx文件格式(以openXML格式)转换为JSON格式。我需要一些指导方针来做到这一点。提前致谢。


答案 1

您可以看一下 Json-lib Java 库,它提供 XML 到 JSON 的转换。

String xml = "<hello><test>1.2</test><test2>123</test2></hello>";
XMLSerializer xmlSerializer = new XMLSerializer();  
JSON json = xmlSerializer.read( xml );  

如果您还需要根标签,只需添加一个外部虚拟标签:

String xml = "<hello><test>1.2</test><test2>123</test2></hello>";
XMLSerializer xmlSerializer = new XMLSerializer();  
JSON json = xmlSerializer.read("<x>" + xml + "</x>");  

答案 2

XML和JSON之间没有直接映射;XML带有类型信息(每个元素都有一个名称)以及命名空间。因此,除非每个 JSON 对象都嵌入了类型信息,否则转换将是有损的。

但这不一定重要。重要的是 JSON 的使用者知道数据协定。例如,给定此 XML:

<books>
  <book author="Jimbo Jones" title="Bar Baz">
    <summary>Foo</summary>
  </book>
  <book title="Don't Care" author="Fake Person">
    <summary>Dummy Data</summary>
  </book>
</books>

您可以将其转换为:

{
    "books": [
        { "author": "Jimbo Jones", "title": "Bar Baz", "summary": "Foo" },
        { "author": "Fake Person", "title": "Don't Care", "summary": "Dummy Data" },
    ]
}

而且使用者不需要知道集合中的每个对象都是一个对象。booksbook

编辑:

如果 XML 具有 XML 架构,并且使用的是 .NET,则可以使用 xsd.exe从该架构生成类。然后,可以将源 XML 解析为这些类的对象,然后使用 a 将这些类序列化为 JSON。DataContractJsonSerializer

如果您没有架构,则很难自己手动定义JSON格式。