问题
有哪些好的工具可以快速轻松地将XML转换为Java中的JSON?
#1 热门回答(138 赞)
Java中的JSON有一些很棒的资源。
Maven依赖:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20171018</version>
</dependency>
XML.java
是你要找的职业:
import org.json.JSONObject;
import org.json.XML;
public class Main {
public static int PRETTY_PRINT_INDENT_FACTOR = 4;
public static String TEST_XML_STRING =
"<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";
public static void main(String[] args) {
try {
JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
System.out.println(jsonPrettyPrintString);
} catch (JSONException je) {
System.out.println(je.toString());
}
}
}
输出是:
{"test": {
"attrib": "moretest",
"content": "Turn this to JSON"
}}
#2 热门回答(49 赞)
要将XML文件转换为JSON,请包含以下依赖项
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
你可以Download Jar from Maven Repository here。然后实现为:
String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);
#3 热门回答(25 赞)
JSON in Java的唯一问题是,如果你的XML只有一个子节点,但它是一个数组,它会将它转换为一个对象而不是一个数组。如果你动态地始终从XML转换为JSON,这会导致问题,如果你的示例XML只有一个元素,则返回一个对象,但如果它有2,则返回一个数组,这会导致使用JSON的人员出现解析问题。
Infoscoop'sXML2JSONclass有一种在转换之前标记数组元素的方法,因此即使XML中只有一个子节点,也可以正确映射数组。
这里是an example使用它(用稍微不同的语言,但你也可以看到如何使用XML2JSON链接的nodelist2json()方法中的数组)。