我正在使用org.json使用下面的代码片段将xml转换为json。不幸的是,有一个名为" countries"这应该是一个数组,但有时只能有一个国家。在这种情况下,阵列不会被取消,而是#34;国家"显示在{}而不是[{}]或[]。
JSONObject xmlJSONObj = XML.toJSONObject(xsltresponse);
return xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
我得到的输出是在json转换之后:
{
"data":{
"name":"Microsoft",
"date":"today",
"countries":{
"name:"AN"
}}}
而不是低于输出
{
"data":{
"name":"Microsoft",
"date":"today",
"countries":[{
"name:"AN"
}]
}}
我该如何解决?
答案 0 :(得分:1)
我用这个来解决问题,这很好用。我会将其标记为已接受的答案。请让我知道其他明智的事。
JSONObject xmlJSONObj = XML.toJSONObject(response);
JSONArray jsonArray = new JSONArray();
JSONObject data = xmlJSONObj.getJSONObject("data");
JSONObject objArr = data.optJSONObject("countries");
if (objArr != null) {
jsonArray.put(objArr);
data.putOpt("countries", jsonArray);
}