XML到JSON转换正确格式

时间:2017-01-17 08:23:39

标签: java json xml xml-parsing geojson

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

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

我的XML格式看起来像

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

我没有员工班级,下次这个root标签可以是任何东西所以我使用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"
}

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

1 个答案:

答案 0 :(得分:0)

如果已知根元素的名称,例如类的名称,您只需使用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;
}