在Java中将JSON转换为XML

我是json的新手。 我有一个程序来从JSON对象生成XML。

String str = "{'name':'JSON','integer':1,'double':2.0,'boolean':true,'nested':{'id':42},'array':[1,2,3]}"; JSON json = JSONSerializer.toJSON( str ); XMLSerializer xmlSerializer = new XMLSerializer(); xmlSerializer.setTypeHintsCompatibility( false ); String xml = xmlSerializer.write( json ); System.out.println(xml); 

输出是:

 <?xml version="1.0" encoding="UTF-8"?> <o><array json_class="array"><e json_type="number">1</e><e json_type="number">2</e><e json_type="number">3</e></array><boolean json_type="boolean">true</boolean><double json_type="number">2.0</double><integer json_type="number">1</integer><name json_type="string">JSON</name><nested json_class="object"><id json_type="number">42</id></nested></o> 

我最大的问题是如何写我自己的属性,而不是json_type =“数字”,也写我自己的子元素。

然后使用json.org的(优秀的)JSON-Java库

 JSONObject json = new JSONObject(str); String xml = XML.toString(json); 

toString可以使用第二个参数来提供XML根节点的名称。

这个库也能够使用XML.toJSONObject(java.lang.String string)将XML转换为JSON。

检查Javadoc

链接到github存储库

POM

 <dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20160212</version> </dependency> 

原来的post更新了新的链接

如果你有一个有效的XML文件的dtd文件,那么你可以很容易地使用eclipselink jar二进制将json转换为xml和xml到json。

请参考: http : //www.cubicrace.com/2015/06/How-to-convert-XML-to-JSON-format.html

文章还有一个示例项目(包括支持第三方jar)作为zip文件,可以下载参考。

如果你想replace任何节点值,你可以这样做

 JSONObject json = new JSONObject(str); String xml = XML.toString(json); xml.replace("old value", "new value");