【发布时间】:2018-05-31 12:22:39
【问题描述】:
我尝试在 java 中将 XML 转换为 JSON。我正在使用 Stax 解析器进行转换。得到START_ELEMENT、END_ELEMENT、CHARACTERS后,不知道怎么转成JSON格式。不使用任何内置库、JsonObject、JSonArray.IS 任何可用的逻辑用于此转换...
【问题讨论】:
-
你在问什么?
我尝试在 java 中将 XML 转换为 JSON。我正在使用 Stax 解析器进行转换。得到START_ELEMENT、END_ELEMENT、CHARACTERS后,不知道怎么转成JSON格式。不使用任何内置库、JsonObject、JSonArray.IS 任何可用的逻辑用于此转换...
【问题讨论】:
将 XML 转换为 JSON 的示例代码。在eclipse中创建一个java项目因为我正在创建一个java项目我将通过右键单击项目手动导入Java-json.jar并通过选择添加外部jar选项选择配置构建路径添加jar文件并运行项目。如果您正在使用 maven 项目构建,请在 pom.xml 中添加以下依赖项
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
package com.test.jsontoxml
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
public class JsonConversion {
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());
}
}
}
【讨论】:
为什么不使用现有的 JAR 来完成这项工作。
java-json 中存在一种这样的高效解析器
http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm
使用
可以在一行中完成转换import org.json.XML;
....
JSONObject jsonObject = XML.toJSONObject("Your XML Here");
【讨论】:
Underscore-java 库可以将 xml 转换为 json。我是项目的维护者。 Live example
import com.github.underscore.lodash.U;
public class JsonConversion {
public static String TEST_XML_STRING =
"<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";
public static void main(String args[]) {
String jsonPrettyPrintString = U.xmlToJson(TEST_XML_STRING);
System.out.println(jsonPrettyPrintString);
// {
// "test": {
// "-attrib": "moretest",
// "#text": "Turn this to JSON"
// }
// }
}
}
【讨论】: