首页 > 解决方案 > 从xml转换后,如何使用java将方括号添加到json

问题描述

我有以下代码。

import org.json.JSONObject;
import org.json.XML;

public class Xml2Json {
    public static void main(String[] args) {
    String xmlString = "<users><user name=test1 age=20></user><report sub=eng score=30></report></users>";
        JSONObject jsonObject = XML.toJSONObject(xmlString);
        System.out.println(jsonObject);
}}

它产生以下输出:

{"users":{"report":{"sub":"eng","score":30},"user":{"name":"test1","age":20}}}

但我真正需要的是方括号中只有一些标签/元素,您可以在下面的 JSON 中查看预期输出:

[{"users":[{"report":[{"sub":"eng","score":30}],"user":{"name":"test1","age":20}}]}]

标签: javajsonxml

解决方案


您可以将代码更改为:

import org.json.JSONArray;
import org.json.JSONObject;
import org.json.XML;

public class XmlToJson {
    public static void main(String[] args) {
        String xmlString = "<users><user name=test1 age=20></user><report sub=eng score=30></report></users>";
        JSONObject jsonObject = XML.toJSONObject(xmlString);
        jsonObject.getJSONObject("users").put("report",new JSONArray().put(jsonObject.getJSONObject("users").getJSONObject("report")));
        jsonObject.put("users",new JSONArray().put(jsonObject.getJSONObject("users")));
        JSONArray jsonArray =  new JSONArray().put(jsonObject);
        System.out.println(jsonArray);
    }
}

输出:

[{"users":[{"report":[{"sub":"eng","score":30}],"user":{"name":"test1","age":20}}]}]

推荐阅读