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()。 –