2012-03-02 128 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}] 
      } 
      ] 
}