从xml转换后,如何使用java

时间:2020-07-08 06:21:53

标签: java json xml

我有以下代码。

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}}]}]

1 个答案:

答案 0 :(得分:1)

您可以将代码更改为:

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}}]}]