关于satckoverflow有一些问题,但我没有从他们那里找到任何成功。所以这是我的情况。我正在阅读facebook的一些图片
https://graph.facebook.com/170665393122726?fields=name,photos.fields(source)
这个链接有分页,所以我每页得到25张图片所以在第一页我得到25张图片接下来25我移动到下一个网址但是当我获取下一页时它会给我一个org.json.JSONException。
这是我的代码
arraylist = new ArrayList<String>();
boolean firsttime = true;
JSONArray jsonArrayPhotos;
try
{
JSONServiceHandler _json_parser= new JSONServiceHandler();
jsonobject = _json_parser.getJSONFromUrl(url);
while(url != null)
{
if(jsonobject != null)
{
if(firsttime)
{
jsonobject = jsonobject.getJSONObject("photos");
jsonArrayPhotos = jsonobject.getJSONArray(TAG_DATA);
firsttime = false;
}
else
{
jsonArrayPhotos = jsonobject.getJSONArray("TAG_DATA");
}
for (int i = 0; i < jsonArrayPhotos.length(); i++)
{
ArrayList<String> map = new ArrayList<String>();
JSONObject jObject = jsonArrayPhotos.getJSONObject(i);
String source = jObject.getString(TAG_IMAGE_SOURCE);
map.add(source);
arraylist.addAll(map);
}
//next url
JSONObject jsonpag = jsonobject.getJSONObject("paging");
url = jsonpag.getString("next");
jsonobject = _json_parser.getJSONFromUrl(url);
}
else
{
return null;
}
}//end of while
}
catch (Exception e)
{
e.printStackTrace();
/*exceptionToBeThrown=e;
return "null";*/
}
请帮助。
日志
02-20 02:54:25.401: W/System.err(358): org.json.JSONException: No value for TAG_DATA
02-20 02:54:25.401: W/System.err(358): at org.json.JSONObject.get(JSONObject.java:354)
02-20 02:54:25.401: W/System.err(358): at org.json.JSONObject.getJSONArray(JSONObject.java:544)
02-20 02:54:25.401: W/System.err(358): at com.app_desk.hairstyle.main.Category$DownloadJSON.doInBackground(Category.java:144)
02-20 02:54:25.401: W/System.err(358): at com.app_desk.hairstyle.main.Category$DownloadJSON.doInBackground(Category.java:1)
02-20 02:54:25.421: W/System.err(358): at android.os.AsyncTask$2.call(AsyncTask.java:185)
02-20 02:54:25.421: W/System.err(358): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
02-20 02:54:25.421: W/System.err(358): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
02-20 02:54:25.421: W/System.err(358): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
02-20 02:54:25.421: W/System.err(358): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
02-20 02:54:25.421: W/System.err(358): at java.lang.Thread.run(Thread.java:1019)
答案 0 :(得分:1)
{
"name": "Men-Spikes",
"photos": {
"data": [ // data is json array
更改
jsonobject.getJSONArray("TAG_DATA"); //
要
jsonobject.getJSONArray(TAG_DATA);
其TAG_DATA= data
但不是“TAG_DATA”本身