2016-11-14 125 views
0

我有以下JSON對象轉換JSON對象列出<String>

{"LIST":{"row_12":{"id":"11","name":"blah blah"}, 
"row_13":{"id":"8","name":"blah blah"}, 
"row_10":{"id":"3","name":"blah blah"}, 
"row_11":{"id":"14","name":"blah blah"}, 
"row_2":{"id":"27","name":"blah blah"}, 
"row_1":{"id":"2","name":"blah blah"}, 
"row_4":{"id":"23","name":"blah blah"}, 
"row_14":{"id":"43","name":"blah blah"}, 
"row_15":{"id":"35","name":"blah blah"}, 
"row_3":{"id":"36","name":"blah blah"}, 
"row_5":{"id":"30","name":"blah blah"}, 
"row_6":{"id":"34","name":"blah blah"}, 
"row_7":{"id":"17","name":"blah blah"}, 
"row_8":{"id":"37","name":"blah blah"}, 
"row_9":{"id":"1","name":"blah blah"}}} 

我想把它轉換到列表我試了碼從這些問題的答案都與我相似的問題,但他們didn`t工作,我認爲這是因爲行中的每個對象都有它的名字。我如何將對象轉換爲List。

+0

顯示您嘗試過什麼。另請參閱http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java – Nabin

+1

基本上你需要什麼值在你的名單?無論你需要身份證和姓名還是隻有名單 –

回答

0
JSONObject list = response.getJSONObject("LIST"); 
JSONObject rowOne = list.getJSONObject("row_12"); 
String id = rowOne.getString("id"); 
String name = rowOne.getString("name"); 

您按照此過程14次,因爲你的回覆鍵,值對是不同的。你應該爲每一行提供一個JSONArray列表。 「響應」是您在Async接收方法上收到的JSONObject。 希望它有幫助。 [PS:你的問題在stackOverFlow中是不好的做法。請check this link看到stackOverFlow的問題發佈方法。] 乾杯!

+0

感謝隊友,所以沒有辦法把所有這些對象放到一個JSON數組中? – Sanzhar

+0

隨時伴侶..這是服務器端的工作,給你一個漂亮的JSONResponse。你所要做的就是解析它。服務器向你發送一個非常業餘的json響應。他/她不用for循環,而是寫了15行代碼來向你發送響應。乾杯! –

+0

@Sanzhar,其他答案將使您能夠解析而不會從服務器響應中做出任何更改。我認爲這不是一種好的做法,特別是如果你想基於一種價值做一件事,但它會適用於你目前的反應。 –

1

您必須使用keys()迭代器來獲取所有屬性,然後在每個對象上調用get()

Iterator<String> iter = json.keys(); 
while (iter.hasNext()) { 
    String key = iter.next(); 
    try { 
     Object value = json.get(key); 
    } catch (JSONException e) { 
     // went wrong! 
    } 
} 

//這裏json是「LIST」Json對象的對象。

以下是供您參考的鏈接。 Iterating through JSONObject