【问题标题】:How can i remove a root node from a json after converting from xml, using java使用java从xml转换后如何从json中删除根节点
【发布时间】:2020-07-07 11:16:56
【问题描述】:

我有以下代码:

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

但我想删除这个根节点,预期的输出是:

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

谁能帮助我?..提前谢谢!

【问题讨论】:

  • Underscore-java 库有一个静态方法 U.get(map, path)。您可以提取数据并将其转换为 json。

标签: java json xml


【解决方案1】:

而不是删除只是将根节点值分配给jsonObject

jsonObject = (JSONObject) jsonObject.get(jsonObject.keys().next());
System.out.println(jsonObject);

也可以直接指定根节点的名字

jsonObject = (JSONObject) jsonObject.get("users");

输出:

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

【讨论】:

  • 谢谢!如果我想重命名这个名字,你能建议我该怎么做,即“用户”到“员工”
  • jsonObject.put("employees", jsonObject.remove("users"));
猜你喜欢
  • 1970-01-01
  • 2020-09-14
  • 2014-11-21
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多