1
我正在嘗試製作一個小應用程序(圖像庫來自Web的圖像,是我從我收到的JSON文件獲取的網址)。 JSON的背景下看起來像這樣:Android中的JSON問題(對象消失)
{"images":{
"yXVak":{
"image_hash":"yXVak",
"imgur_page":"http:\/\/imgur.com\/yXVak",
"original_image":"http:\/\/imgur.com\/yXVak.gif",
"large_thumbnail":"http:\/\/imgur.com\/yXVakl.gif",
"small_thumbnail":"http:\/\/imgur.com\/yXVaks.gif",
"message":"I didn't know they made you see THAT well.",
"source":" ",
"date_popular":"2011-07-18 18:45:05"},
..... 我有大約30多個對象,看起來像「yXVak」。
現在,問題是,當我試圖解析文本時,程序找不到對象「yXVak」,異常看起來像這樣:org.json.JSONException:JSONObject [「yXVak」]未找到。 我解析JSON文件那樣:
jObject = new JSONObject(jString);
JSONObject jImages = jObject.getJSONObject("images");
getImages(jImages);
getImages功能看起來像這樣:
JSONObject jHash = jImages.getJSONObject("yXVak") ;
String hash = jHash.getString("yXVak");
String page = jHash.getString("http:\\/\\/imgur.com\\/yXVak");
Image[] images = new Image[3];
images[0] = new Image(jHash.getString("original_image"), jHash.getString("http:\\/\\/imgur.com\\/yXVak.gif"));
images[1] = new Image(jHash.getString("large_thumbnail"), jHash.getString("http:\\/\\/imgur.com\\/yXVakl.gif"));
images[2] = new Image(jHash.getString("small_thumbnail"), jHash.getString("http:\\/\\/imgur.com\\/yXVaks.gif"));
String message = jHash.getString("I didn't know they made you see THAT well.");
String source = jHash.getString(" ");
String date = jHash.getString("2011-07-18 18:45:05");
listOfImages.add(new ImageHash(hash, page, images, message, source, date));
...
通過調試我發現的jstring對象向右看(整個字符串在文件中),但jImages對象缺少兩個第一個對象(「yXVak」,第二個我沒有在這裏顯示「6k9yE」)。 有人可以幫我,請問我做錯了什麼?
感謝的人,我不相信我做了這個愚蠢的錯誤,但我有一個問題:有沒有什麼方法可以重用此代碼(除了用所有的getString()函數編寫函數),我的意思是以某種方式遍歷所有的JSONObject,通過循環或其他? – user854787
嗨@ user854787,歡迎來到StackOverFlow.I沒有很好地解決你的問題。但是我告訴你,如果你的響應包含多個JSONObject'yXVak',那麼你可以通過循環。否則你堅持使用getString()。 –