android - 将xml格式的字符串解析为json数组

时间:2014-02-11 05:46:15

标签: android xml json wcf

假设我从Web方法获得xml响应,如下所示:

<Response xmlns="http://you.wish.you.knew.com/">
<Result>
[
&#xD;
"IMG_20140210_212703.jpg",
&#xD;
"IMG_20140210_170020.jpg"
&#xD;
]
</Result>
</Response>

我从一个wcf网络服务得到这个,我真的不知所措,因为它会破坏。如何将其作为字符串并从中提取数据,以便将其转换为json数组或者我可以将其转换为jsonarray。

2 个答案:

答案 0 :(得分:1)

步骤:

1:下载java-json.jar

2:将其添加到项目的/ libs文件夹中,然后添加到构建路径。

用法:

import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;

String testXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + "<parentNode>"    
+"<test1>1234</test1>"                          
+ "<test2>" + "Test" + "</test2>" 
+ "<test3>" + 120 + "</test3>" 
+ "</parentNode>"; 

JSONObject jsonObj = null;
try {
  jsonObj = XML.toJSONObject(testXml);
} catch (JSONException e) {
  Log.e("JSON exception", e.getMessage());
  e.printStackTrace();
} 

Log.d("JSON", jsonObj.toString());

输出:

JSON:

{ “parentNode”:{ “测试1”:1234, “TEST2”: “测试”, “TEST3”:120}}

答案 1 :(得分:0)

所以我不想做一个快速而肮脏的修复,因为我想实现一些可以做出可靠的固定修复的库,但我最终做的就是替换'&amp; #xd'字符在我的字符串中使用'\ n'然后我可以变成jsonarray。最后,我的解决方案看起来像这样:

JSONObject json = XML.toJSONObject(response);

temp = json.optJSONObject("UploadFileResponse")
.optString("UploadFileResult").toString().replace("&#xd;", "");

return temp;

我最终离开了我的项目库,Gopal提到了java-json.jar,这是我从网上找到的。