2014-03-27 4 views
19

나는 응답 여기JSONObjects를 JSONArray로 변환하는 방법은 무엇입니까?

{ 
"songs":{ 
      "2562862600":{"id":"2562862600""pos":1}, 
      "2562862620":{"id":"2562862620""pos":1}, 
      "2562862604":{"id":"2562862604""pos":1}, 
      "2573433638":{"id":"2573433638""pos":1} 
     } 
} 

내 코드 JSONArray에 노래를 변환하는 방법

List<NameValuePair> param = new ArrayList<NameValuePair>(); 
JSONObject json = jParser.makeHttpRequest(url, "GET", param); 

    JSONObject songs= json.getJSONObject("songs"); 

입니다 있나요? 이 같은

답변

39

뭔가 :

JSONObject songs= json.getJSONObject("songs"); 
Iterator x = songs.keys(); 
JSONArray jsonArray = new JSONArray(); 

while (x.hasNext()){ 
    String key = (String) x.next(); 
    jsonArray.put(songs.get(key)); 
} 
+0

아름다운 코드를 ... #worked #plusone을 – BENN1TH

3

귀하의 응답은 다음과 같이이 JSON 배열 자격을 할 수 있어야한다.

{ 
    "songs":[ 
    {"2562862600": {"id":"2562862600", "pos":1}}, 
    {"2562862620": {"id":"2562862620", "pos":1}}, 
    {"2562862604": {"id":"2562862604", "pos":1}}, 
    {"2573433638": {"id":"2573433638", "pos":1}} 
    ] 
} 

String resp = ...//String output from your source 
JSONObject ob = new JSONObject(resp); 
JSONArray arr = ob.getJSONArray("songs"); 

for(int i=0; i<arr.length(); i++){ 
    JSONObject o = arr.getJSONObject(i); 
    System.out.println(o); 
} 
0

는 응답이 HashMap 사용할 필요가 역 직렬화하기 위해 다음과 같이 당신은 당신의 응답을 구문 분석 할 수 있습니다

String resp = ...//String output from your source 

Gson gson = new GsonBuilder().create(); 
gson.fromJson(resp,TheResponse.class); 

class TheResponse{ 
HashMap<String,Song> songs; 
} 

class Song{ 
    String id; 
    String pos; 
}