2017-12-03 57 views
3

获取数据这是我的Json我无法从JSON

{ 
    "2017": { 
     "11": { 
      "8": { 
       "status": "" 
      }, 
      "10": { 
       "status": "" 
      }, 
      "24": { 
       "status": "" 
      }, 
      "present": 0, 
      "absent": 0 
     }, 
     "12": { 
      "1": { 
       "status": "" 
      }, 
      "2": { 
       "status": "" 
      }, 
      "present": 0, 
      "absent": 0 
     } 
    } 
} 

在我上面的JSON 2017年,11月,和8日。 我无法获得12个月。我只是得到它到第11个月,并且日期以相反的顺序 这就是我所得到的当我从json获取数据时

12-03 10:26:23.592 18581-18581 /? D /年:2017

12-03 10:26:23.592 18581-18581 /? D/month:11

12-03 10:26:23.592 18581-18581 /? D/16:24

12-03 10:26:23.592 18581-18581 /? D/title:A

12-03 10:26:23.592 18581-18581 /? D/16:10

12-03 10:26:23.592 18581-18581 /? D/title:A

12-03 10:26:23.592 18581-18581 /? D/16:8

12-03 10:26:23.592 18581-18581 /? d /标题:P

,这里是我写来获取这个代码

try { 
      JSONObject object = new JSONObject(response); 
      Iterator iterator = object.keys(); 
      attendance_pojo pojo= new attendance_pojo(); 

      while (iterator.hasNext()) { 
       String year = (String) iterator.next(); 
       pojo.setYear(year); 

       Log.d("year", year); 
       JSONObject obj = object.getJSONObject(year); 
       Iterator iterator2 = obj.keys(); 


       while (iterator2.hasNext()) { 

        String month = (String) iterator2.next(); 
        pojo.setMonth(month); 
        Log.d("month", month); 
        JSONObject ob = obj.getJSONObject(month); 

        Iterator iterator3 = ob.keys(); 

         int datecntr=0; 
        while (iterator3.hasNext()) { 
         datecntr++; 
         String date = (String) iterator3.next(); 
         pojo.setDate(date); 
         JSONObject ob1 = ob.getJSONObject(date); 
         Log.d("16", date); 
         String title = ob1.getString("status"); 
         Log.d("title", title); 
        } 
        pojo.setDatecounter(datecntr); 

       } 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     }} 

回答

1

1)你试图遍历包含两个对象的对象。你可能想要定义一个数组中的月份如下:

2)返回的json元素的顺序是随机的,它们不是按照结构的特定顺序来的。

{ 
    "2017": [ 
     "11": { 
      "8": { 
       "status": "" 
      }, 
      "10": { 
       "status": "" 
      }, 
      "24": { 
       "status": "" 
      }, 
      "present": 0, 
      "absent": 0 
     }, 
     "12": { 
      "1": { 
       "status": "" 
      }, 
      "2": { 
       "status": "" 
      }, 
      "present": 0, 
      "absent": 0 
     } 
    ] 
}