My JsonString:
{"Data":{"pics":{"24":{"ID":"24","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/010.jpg"},"23":{"ID":"23","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/009.jpg"},"22":{"ID":"22","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/008.jpg"},"21":{"ID":"21","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/007.jpg"},"20":{"ID":"20","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/006.jpg"},"19":{"ID":"19","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/005.jpg"},"18":{"ID":"18","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/004.jpg"},"17":{"ID":"17","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/003.jpg"},"16":{"ID":"16","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/002.jpg"},"15":{"ID":"15","LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/001.jpg"},"14":{"ID":"14","LINK":"http:\/\/orf.at\/mojo\/1_1\/storyserver\/\/news\/images\/logo.newsorfon.png"}}},"Message":null,"Code":200}
I want to parse it to get the id and the link into my treemap.
My Code:
JSONObject parse = new JSONObject(msg.obj.toString());
JSONObject data = parse.getJSONObject("Data");
JSONArray arr = data.getJSONArray("pics");
for (int i = 0; i<arr.length(); i++) {
JSONObject obj = arr.getJSONObject(i);
list.put(Integer.parseInt(obj.getString("ID")), obj.getString("LINK"));
Log.e("FunPics",obj.getString("ID")+ " " + obj.getString("LINK"));
}
Error:
11-21 11:32:21.005: W/System.err(393): org.json.JSONException: JSONObject["pics"] is not a JSONArray.
11-21 11:32:21.015: W/System.err(393): at org.json.JSONObject.getJSONArray(JSONObject.java:366)
-
put the json string in json array i mean put "msg.obj.toString()" into getJSONArray() instead of "pics" and then using for loop get "pics" as a jsonobject...!! and One "more" thing is the JSONString coming from webservice is wrong it must come in [{Data:......}] formatmayank_droid– mayank_droid2011年11月21日 12:24:28 +00:00Commented Nov 21, 2011 at 12:24
3 Answers 3
pics is not an array, it's an object, array is indicated by being in [ and ] (as specified here):
{
"Data":{
"pics":{
"24":{
"ID":"24",
"LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/010.jpg"
},
"23":{
"ID":"23",
"LINK":"http:\/\/www.orschlurch.net\/wp-content\/gallery\/pixxdump-144\/009.jpg"
},
}
},
....
"Message":null,
"Code":200
}
Comments
"pics" is a jsonObject not a jsonArray so write data.getJSONObject("pics") in place of data.getJSONArray("pics");
Comments
pics key has jsonObject as value not a jsonArray.
JSONObject picsJson = data.getJSONObject("pics");
you have to iterate through all the keys and get each information of picture. use keys iterator, check the link below,
http://developer.android.com/reference/org/json/JSONObject.html
Iterator keys = picsJson.keys();
while(keys.hasNext()) {