org.json.JSONException没有数据值

时间:2014-02-20 09:48:58

标签: android json facebook

关于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)

1 个答案:

答案 0 :(得分:1)

{
   "name": "Men-Spikes",
   "photos": {
      "data": [ // data is json array

更改

 jsonobject.getJSONArray("TAG_DATA"); // 

 jsonobject.getJSONArray(TAG_DATA);

TAG_DATA= data但不是“TAG_DATA”本身