2017-01-17 3 views
0

Я знаю, что тип вопроса я задам задают много раз, но там до сих пор я упал мой вопрос отличается, потому что я не могу найти правильный ответ,XML в JSON преобразования правильный формат

I нужно скрытом строку XML в формат JSON

Мой XML Format Похож

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

Пожалуйста, предложите мне, каким образом я могу achive это.

ответ

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; 
} 
+0

luc14n0 я не имею класс со мной я получаю эти значения из моего Дб. На этот раз его сотрудник, но в следующий раз это может быть и является ли это открытым исходным кодом? – Rohitesh

+0

Я обновил свой ответ. Используйте JSONObject # getNames, чтобы получить список имен полей в вашем объекте JSON. –

Смежные вопросы