2012-03-02 131 views
0

我試圖用json發送Usrs及其項目的詳細信息。但在json生成時,用json對象迭代jsonarry,我堅持中middle.how管理Jsonrray和JsonObject以下給出的迭代數據。Jsonobject和Jsonarray管理在迭代中

{ 
"Data": 
    { 
     ["user":1], 
     "items": 
       [{"item":1},{"item":2},{"item":3},{"item":4}] 
    }, 
    { 
     ["user":2], 
     "items": 
       [{"item":11},{"item":2},{"item":3},{"item":4}] 
    }, 
    { 
     ["user":3], 
     "items": 
       [{"item":11},{"item":2},{"item":3},{"item":4}] 
    }, 
} 
  1. 我不知道,上面給出的結構是否完善與否?
  2. 如果完美,那麼我如何檢索特定用戶的第4項?
+0

是否使用了JSON庫來創建和解析您的JSON?如果不是,我會建議你這樣做。我使用Google GSON,它很不錯。您可以使用[http://www.jsonlint.com](http://www.jsonlint.com)上的在線驗證器。我也使用過Stringtree來檢查我的JSON:[http://stringtree.org/stringtree-json.html](http://stringtree.org/stringtree-json.html) – 2012-03-02 13:21:56

回答

0

我爲你編寫(非具有挑戰性的)代碼感覺不好,但是我打開了IDE,並等待着咖啡。所以,代碼給你。

String s = "{\"Data\":[{\"user\":1,\"items\":[{\"item\":1},{\"item\":2},{\"item\":3},{\"item\":4}]},{\"user\":2,\"items\":[{\"item\":11},{\"item\":2},{\"item\":3},{\"item\":4}]},{\"user\":3,\"items\":[{\"item\":11},{\"item\":2},{\"item\":3},{\"item\":4}]}]}"; 
    JSONObject json = new JSONObject(s); 
    JSONArray data = json.getJSONArray("Data"); 
    for(int i=0; i< data.length(); i++){ 
     JSONObject userData = data.getJSONObject(i); 
     if(userData.getInt("user") ==2){ 
       JSONArray items = userData.getJSONArray("items"); 
       JSONObject item = items.getJSONObject(3); 
       System.out.println("item#4: " + item.getInt("item")); 
     } 
    } 

爲您正確的JSON是

{ 
     "Data":[ 
      { 
       "user":1, 
       "items": 
         [{"item":1},{"item":2},{"item":3},{"item":4}] 
      }, 
      { 
       "user":2, 
       "items": 
         [{"item":11},{"item":2},{"item":3},{"item":4}] 
      }, 
      { 
       "user":3, 
       "items": 
         [{"item":11},{"item":2},{"item":3},{"item":4}] 
      } 
      ] 
}