我有json响应,但这是标准格式吗?
[{"code":"123","rate":"0.1","title":"sss","subtitle":"mmm"},{"code":"456","rate":"0.1","title":"bbb","subtitle":"uuu"}]
如何在android中解析它?
new JSONObject(result.toString())
抛出异常!
06-07 11:45:54.943: W/System.err(10310): at org.json.JSON.typeMismatch(JSON.java:111)
06-07 11:45:54.943: W/System.err(10310): at org.json.JSONObject.<init>(JSONObject.java:158)
06-07 11:45:54.943: W/System.err(10310): at org.json.JSONObject.<init>(JSONObject.java:171)
答案 0 :(得分:2)
我有json响应,但这是标准格式吗?
开头是<
,最后是>
。所以:
new JSONObject(result.toString().substring(1, result.length() - 2));
或更有可能:
new JSONArray(result.toString().substring(1, result.length() - 2));
因为它的顶层是一个数组。
由于您已删除了原来的<
和>
:
由于它的顶层是一个数组,您可能需要JSONArray
,而不是JSONObject
:
new JSONArray(result.toString());
答案 1 :(得分:2)
这是JSONarray
[{"code":"123","rate":"0.1","title":"sss","subtitle":"mmm"},{"code":"456","rate":"0.1","title":"bbb","subtitle":"uuu"}]
尝试解析
new JSONArray(result.toString())
答案 2 :(得分:1)
首先像这样分配你的json数组
JSONArray jsar=new JSONArray(result);
然后解析像这样的对象
for(int i=0;i<jsar.length;i++)
{
JSONObject jsobj=new JSONObject(jsar[i]);
String strcode=jsobj.get("code");
String strrate=jsobj.get("rate");
String strtitle=jsobj.get("title");
String strsubtitle=jsobj.get("subtitle");
}
希望这会对你有所帮助,