2015-03-11 3 views
1

Я пытаюсь получить фиды на Facebook. Когда я открываю эту ссылку в браузере, полный json появляется без проблем, но когда я разбираю его, используя следующий код, только первые два сообщения отображаются в приложении.Недостаточно данных, полученных в графическом интерфейсе Facebook

url = "https://graph.facebook.com/v2.2/awaaziitkgp/feed?access_token=" 
      + static_token; 

для синтаксического анализа, я делаю это

ServiceHandler sh = new ServiceHandler(); 
    String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET); 
    JSONObject jsonObj = new JSONObject(jsonStr); 
         // Getting JSON Array node 
         contacts = jsonObj.getJSONArray(TAG_DATA); 
         String x = null; 
         Log.d("contact.length", x.valueOf(contacts.length())); 
         // looping through All Contacts 
         for (int i = 0; i < contacts.length(); i++) { 
          JSONObject c = contacts.getJSONObject(i); 

          String id = c.getString(TAG_ID); 
          String message = c.getString(TAG_MESSAGE);// feed 
          String createtime = c.getString(TAG_CREATETIME);// date, 
                      // time 
          Log.d("POSTS", message); // created 

Первые два объекта JSON становятся корректно распознаны, но остальные не видны.

ответ

0

Два из ваших JSONObjects обрабатываются без проблем. Я думаю, что поле «сообщение», которое вы ищете, недоступно в вашем третьем объекте.

Проверьте правильность установки JSON. Надеюсь, поможет.

1

Я нашел решение. Проблема была в файле JSON. Некоторые из сообщений не содержали поля сообщения, поэтому на третьей должности из-за отсутствия поля «сообщение» JSONObject возвращал пустой и завершал цикл. Я добавил if (c.has("message") == true) перед тем, как получить данные из поля сообщения, чтобы исключить null JSONObject.

Смежные вопросы