【问题标题】:XML to JSON Conversion Proper FormatXML 到 JSON 转换正确格式
【发布时间】:2017-01-17 08:23:38
【问题描述】:

我知道我要问的问题类型被问了很多次,但我仍然觉得我的问题是不同的,因为我无法找到正确的答案,

我需要将 XML 字符串转换为 JSON 格式

我的 XML 格式看起来像

<employee>
<empId>1</empId>
<address>India</address>
</employee>

我没有员工类,这个根标签下次可以是任何东西,所以我使用 xml 解析来形成一个 XML,然后我将 xml 字符串覆盖到 JSON

JSONObject xmlJSONObj = XML.toJSONObject(data);
String jsonPreetyPrintString = xmlJSONObj.toString(1);
response = jsonPreetyString;

我的 JSON 输出是这样的

{"employee":{
"empId":1,
"address":"India"
}
}

但是,我希望我的输出看起来像

{
 "empId":1,
 "address":"India"
}

请建议我可以通过哪种方式实现这一目标。

【问题讨论】:

    标签: java json xml xml-parsing geojson


    【解决方案1】:

    如果根元素的名称已知,例如类的名称,你可以简单地使用 JSONObject#getJSONObject:

    http://json-lib.sourceforge.net/apidocs/jdk15/net/sf/json/JSONObject.html#getJSONObject(java.lang.String)

    @Test
    public void testJSON() throws JSONException {
        JSONObject jsonObj = new JSONObject().put("A", new JSONObject().put("a", 1).put("b", 5));
    
        String[] fieldNames = JSONObject.getNames(jsonObj);
        String key = fieldNames[0];
    
        System.out.println(jsonObj); // {"A":{"a":1,"b":5}}
        System.out.println(jsonObj.getJSONObject(key)); // {"a":1,"b":5}
    }
    
    private class A {
        private int a = 1; 
        private int b = 2;
    }
    

    【讨论】:

    • luc14n0 我没有上课,我从我的 Db 获取这些值。这次是它的雇员,但下次它可以是 ,这是开源库吗?
    • 我已经更新了我的答案。使用 JSONObject#getNames 获取 JSON 对象中的字段名称列表。
    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 2015-10-28
    • 1970-01-01
    • 2011-07-04
    • 1970-01-01
    • 2020-08-30
    相关资源
    最近更新 更多