【问题标题】:XML to JSON having an option for arrays with one elementXML 到 JSON 可以选择包含一个元素的数组
【发布时间】:2013-10-04 13:56:59
【问题描述】:

我使用 org.json 在 Java 代码中将 XML 转换为 JSON:

JSONObject jSONObject = org.json.XML.toJSONObject(StringXML);

org.json 库的问题是它们不接受包含一个元素的数组,因此我无法使用 jQuery 的数据表读取 JSON。 (元素周围没有括号)

所以,我想切换到杰克逊,因为我发现它有一个选项:

ObjectMapper mapper = new ObjectMapper()
        .enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);

但是,当我导入最新的库(核心:2.2.3,dataformat-xml:2.2.0)时,DeserializationFeature 类不可用。

有什么方法可以将 XML 字符串转换为 JSON,并且可以选择包含一个元素的数组?

【问题讨论】:

    标签: java xml json jackson


    【解决方案1】:

    我使用 staxon API 将 XML 转换为 JSON。

    import de.odysseus.staxon.json.JsonXMLConfig;
    import de.odysseus.staxon.json.JsonXMLConfigBuilder;
    import de.odysseus.staxon.json.JsonXMLInputFactory;
    
    InputStream input = new FileInputStream(fileIn); // XML file input
    OutputStream output = new FileOutputStream(fileOut); // JSON output file 
    
    JsonXMLConfig config = new JsonXMLConfigBuilder().multiplePI(false).build();
    XMLEventReader reader = new JsonXMLInputFactory(config)
                                .createXMLEventReader(input);
    XMLEventWriter writer = XMLOutputFactory.newInstance()
                                .createXMLEventWriter(output);
    

    here下载API。

    你可以试试这个。

    【讨论】:

    • 是否可以输入输出String而不是FileInputStream和FileOutputStream?我在 API 上找不到它。
    • 是的,使用StringReaderStringWriter
    猜你喜欢
    • 2021-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2018-06-17
    • 2023-02-21
    相关资源
    最近更新 更多