2015-07-30 2 views
-2

Извините за мой английский, я не могу разобрать json объект, как это:Невозможно разобрать JSON объект (Android)

{ 
    "user": { 
     "id": 34, 
     "last_login": { 
      "date": "2015-07-30 11:22:34.000000", 
      "timezone_type": 3, 
      "timezone": "Europe/Oslo" 
     } 
    } 
} 

Я не знаю, почему это не работает. Мне нужно разобрать last_login, но я не могу это сделать

Мой код

JSONObject jsonTable = json.getJSONObject("user"); 

       if(jsonTable.length() > 0) { 
        check = true; 

        ProfileDetalisObject pfDet = new ProfileDetalisObject(); 

        pfDet.setId(jsonTable.getString(TAG_ID)); 


        JSONObject date = jsonTable.getJSONObject("last_login"); 
        if(date.length() > 0) { 
         Iterator<String> iteratorDate = date.keys(); 

         while(iteratorDate.hasNext()) { 
          String currentKeySensor = iteratorDate.next(); 
          JSONObject objDate = date.optJSONObject(currentKeySensor); 

          if(objDate != null) { 
           pfDet.setDate(objDate.getString("date")); 
           pfDet.setTimezone_type(objDate.getString("timezone_type")); 
           pfDet.setTimezone(objDate.getString("timezone")); 
          } 
         } 
        } 

Я не могу разобрать last_login.

+0

Использование gson: https://sites.google.com/site/gson/gson-user-guide – PaMaDo

ответ

2

last_login нормальна JSON объект (так называемый словарь), так что вам не нужны никакие итераторы, просто достичь ключи непосредственно:

JSONObject date = jsonTable.getJSONObject("last_login"); 
pfDet.setDate(date.getString("date")); 
pfDet.setTimezone_type(date.getString("timezone_type")); 
pfDet.setTimezone(date.getString("timezone")); 
+0

aaaaaa .... большое спасибо – g6848453

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