Jsonobject和Jsonarray管理在Iteration中

时间:2012-03-02 13:16:57

标签: java json web-services

我正在尝试用json发送Usrs及其项目的详细信息。但是在json genertion时,使用带有json对象的迭代jsonarry,我坚持使用mid.how来管理Jsonrray和JsonObject,以获得下面给出的迭代数据。

{
"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项?

1 个答案:

答案 0 :(得分: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}]
             }
             ]
}