2015-07-21 3 views
-1

Извините за мой английский. Я пытаюсь вставить разбора JSON, в моем примере я есть этот JSON:Разбор введенный объект json android

{ 
    "myTable": { 
     "1": { 
      "type": "1", 
      "category": "1", 
      "body": { 
       "2": { 
        "id": "2", 
        "device_name": "test 1" 
       }, 
       "5": { 
        "id": "5", 
        "device_name": "test 2" 
       } 
      } 
     }, 
     "2": { 
      "type": "2", 
      "category": "1", 
      "body": { 
       "6": { 
        "id": "6", 
        "device_name": "test 3" 
       } 
      } 
     } 
    } 
} 

Его JSon объект на объект JSON. Это поставило меня в тупик. Пыльник моей Ьги кода разобрать этот JSON

JSONObject sensorTypes = json.getJSONObject("myTable"); 

       if(sensorTypes.length() > 0) { 
        Iterator<String> iterasensorTypes = sensorTypes.keys(); 

        while(iterasensorTypes.hasNext()) { 
         String currentKey = iterasensorTypes.next(); 
         JSONObject obj = sensorTypes.optJSONObject(currentKey); 

         if(obj != null) { 
          Log.e("type", obj.getString("type")); 
          Log.e("category", obj.getString("category")); 

          JSONObject sensor = json.getJSONObject("body"); 
          if(sensor.length() > 0) { 
           Iterator<String> iteratorSensor = sensor.keys(); 

           while(iteratorSensor.hasNext()) { 
            String currentKeySensor = iteratorSensor.next(); 
            JSONObject objSensor = sensor.optJSONObject(currentKeySensor); 

            if(objSensor != null) { 
             Log.e("device_name", objSensor.getString("device_name")); 
            } 
           } 
          } 
         } 


        } 

       } 

И у меня есть это:

org.json.JSONException: Нет значение для body

UPD:

Моего журнала:

E/type﹕ 1 
E/category﹕ 1 
E/ get﹕ org.json.JSONException: No value for body 
+0

сообщения ваших полное 'log' – Pankaj

+0

@Clairvoyant спасибо для ответа, я обновляю свой вопрос – g6848453

ответ

0

Вы являетесь пользователем ng json.getJSONObject("body"); вместо obj.getJSONObject("body");, json - главный объект, один с ключом myTable. body внутри детей myTable, те, которые вы перебирать и ссылка с помощью obj объекта JSONObject obj = sensorTypes.optJSONObject(currentKey);

+1

Aa ... спасибо, ошибка глупости. Благодаря своей работе – g6848453

0

Вместо

JSONObject sensor = json.getJSONObject("body"); 

использование

JSONObject sensor = obj.getJSONObject("body"); //changed to obj from json