2012-03-02 4 views
0

Usrs 및 해당 항목의 세부 정보를 json으로 보내려고합니다. 그러나 json 객체의 반복 된 jsonarry와 json 세대의 시간에, 나는 반복 된 데이터가 주어진 Jsonrray와 JsonObject를 관리하기 위해 middle.how를 붙였습니다. 위에서 주어진 구조가 완벽하게인지 아닌지 확실하지 않다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) –

답변

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}] 
      } 
      ] 
}