【问题标题】:Efficient parser to convert XML to JSON in java without JsonObject and Array在没有 JsonObject 和 Array 的情况下在 java 中将 XML 转换为 JSON 的高效解析器
【发布时间】:2018-05-31 12:22:39
【问题描述】:

我尝试在 java 中将 XML 转换为 JSON。我正在使用 Stax 解析器进行转换。得到START_ELEMENT、END_ELEMENT、CHARACTERS后,不知道怎么转成JSON格式。不使用任何内置库、JsonObject、JSonArray.IS 任何可用的逻辑用于此转换...

【问题讨论】:

  • 你在问什么?

标签: java json xml stax


【解决方案1】:

将 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());
        }
    }
}

【讨论】:

【解决方案2】:

为什么不使用现有的 JAR 来完成这项工作。
java-json 中存在一种这样的高效解析器 http://www.java2s.com/Code/Jar/j/Downloadjavajsonjar.htm

使用

可以在一行中完成转换
import org.json.XML;

....

JSONObject jsonObject = XML.toJSONObject("Your XML Here");

【讨论】:

  • Java-json、Google 的 gson、faster-xml json 等从小型项目到超大型项目都被广泛使用。当值得信赖的人开发出经过全面测试且高效的解析器时,我发现您想要自己的解析器令人惊讶。
  • 软件应用于善而不是恶。 json.org/license.html
【解决方案3】:

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"
        //   }
        // }
    }
}

【讨论】:

    猜你喜欢
    • 2012-11-01
    • 2021-04-12
    • 2021-12-19
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    相关资源
    最近更新 更多