【问题标题】:How to remove numeric keys when converting a json object to xml in java在java中将json对象转换为xml时如何删除数字键
【发布时间】:2017-11-30 13:45:17
【问题描述】:

我是 JSON 和 XML 的新手,我遇到了一个奇怪的问题,从现在开始就一直在努力解决。还没有运气。

有一个 json 对象作为字符串发送到我的程序。现在我需要将给定的字符串转换为 json,然后再转换为 XML。我的输出应该是我转换后的 XML 的字符串。

我能够将字符串转换为 JSON,然后再转换为 XML,没有任何问题。下面的示例代码

org.json.JSONObject jsonFileObject = new org.json.JSONObject(json);
String xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n<"+root+">" 
                 + org.json.XML.toString(jsonFileObject) + "</"+root+">";

但问题是 json 对象中的数字键很少,我们需要删除这些键。

示例 JSON

{
"product": {
    "p1": true,
     "test": {
        "1000": [
        {
        "name": "name1",
        "id": "id1"
        }
                ],
        "2100": [
        {
        "name": "name2",
        "id": "id2"
        }
        ],
        "3200": [
        {
        "name": "name3",
        "id": "id3"
        }
        ],
        "8340": [
        {
        "name": "name4",
        "id": "id4"
        }
        ],
        "6200": [
        {
        "name": "name5",
        "id": "id5"
        }
        ]
    },
    "p2": "p2 test"
  }
}

在上述情况下,我的输出应该是

<test/>

这里的名称和 ID 并不总是可用的。有时它们也可能是空的。

谁能帮帮我。

【问题讨论】:

    标签: java json xml


    【解决方案1】:

    首先,您的 JSON 似乎没有很好地解析。我建议先使用 PARSE 命令

    var json = '{"test": [{"1000": [{"name": "name1", "id": "id1" }  ], "2100": [ { "name": "name2", "id": "id2" }] }]}';
    
    var jsonFileObject = JSON.parse(json);
    

    如果你可以解析它,那么作为一个对象很容易操作它。例如,您可以遍历所有元素并删除、更改或任何内容,然后将其转换为 XML。查看此参考:Filtering json object by key value

    【讨论】:

      【解决方案2】:

      这个 JSON 可以转换成这个 XML。

      <?xml version="1.0" encoding="UTF-8"?>
      <product>
        <p1 boolean="true">true</p1>
        <test>
          <__GE__000 array="true">
            <name>name1</name>
            <id>id1</id>
          </__GE__000>
          <__GI__100 array="true">
            <name>name2</name>
            <id>id2</id>
          </__GI__100>
          <__GM__200 array="true">
            <name>name3</name>
            <id>id3</id>
          </__GM__200>
          <__HA__340 array="true">
            <name>name4</name>
            <id>id4</id>
          </__HA__340>
          <__GY__200 array="true">
            <name>name5</name>
            <id>id5</id>
          </__GY__200>
         </test>
        <p2>p2 test</p2>
      </product>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-05
        • 2017-09-12
        • 2016-01-02
        相关资源
        最近更新 更多