2014-01-08 92 views
0

如何解析HTTP響應ton JSON對象?解析json的字符串android

我改變了我的JSON代碼:

{ 
    "data": [{ 
     "id": 1, 
     "sensor1": 76, 
     "sensor2": 75 
    }, { 
     "id": 2, 
     "sensor1": 76, 
     "sensor2": 206 
    }] 
} 

我的代碼現在:

JSONObject json = new JSONObject(mJson); 
try { 
data = json.getJSONArray("data"); 
for (int i = 0; i < json.length(); i++) { 
    HashMap<String, Integer> map = new HashMap<String, Integer>(); 
    JSONObject obj = (JSONObject) data.get(i); 

    map.put(TAG_SENSOR_1, obj.getInt("sensor1")); 
    map.put(TAG_SENSOR_2, obj.getInt("sensor2")); 

    dataList.add(data.getInt("id") - 1, map); 
} 
} catch (JSONException e) { 
e.printStackTrace(); 
} 

但我有同樣的問題

+0

你用什麼庫來解析JSON?您傳遞給它的值不是有效的JSON數據,因此是錯誤。 – ryanbwork

+0

看起來這個數組數組被存儲爲一個字符串。它可能被原始json數據中的引號括起來。 –

+0

你試圖解析這個JSON的代碼是什麼? –

回答

1

編輯您的字符串格式

{content:[{ 
       first:1, 
       second:76, 
       third:75 
      }, 
      { 
       first:2, 
       second:76, 
       third:75 
      }, 
      { 
       first:3, 
       second:206, 
       third:75 
      }, 
      { 
       first:4, 
       second:6, 
       third:175 
      }, 
      { 
       first:5, 
       second:176, 
       third:75 
      }] 
} 

然後我們e JSONObject和JSONArray來轉換字符串

JSONArray array = new JSONObject(string).getJSONArray("content"); 
for(int i=0;i<array.size();i++){ 
    JSONObject obj = array.get(i); 
    Log.i(TAG,"obj.getInt = "+obj.getInt("first")); 
    Log.i(TAG,"obj.getInt = "+obj.getInt("second")); 
    Log.i(TAG,"obj.getInt = "+obj.getInt("third")); 
} 
+0

你有正確答案。 –