将 XML 转换为 JSON 格式
我必须将docx文件格式(以openXML格式)转换为JSON格式。我需要一些指导方针来做到这一点。提前致谢。
我必须将docx文件格式(以openXML格式)转换为JSON格式。我需要一些指导方针来做到这一点。提前致谢。
您可以看一下 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>");
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" },
]
}
而且使用者不需要知道集合中的每个对象都是一个对象。books
book
编辑:
如果 XML 具有 XML 架构,并且使用的是 .NET,则可以使用 xsd.exe从该架构生成类。然后,可以将源 XML 解析为这些类的对象,然后使用 a 将这些类序列化为 JSON。DataContractJsonSerializer
如果您没有架构,则很难自己手动定义JSON格式。