2014-09-25 83 views
0

我有一個RestResponse RESP它看起來像這樣的文字:如何處理RestResponse

resp.text = [{"class":"org.strotmann.bic.BankIdentCode","id":1,"bankname":"Sparkasse Aachen","bic":"AACSDE33XXX","blz":39050000,"ort":"Aachen","plz":52059},{"class":"org.strotmann.bic.BankIdentCode","id":2,"bankname":"Aareal Bank","bic":"AARBDE5W100","blz":10010424,"ort":"Berlin","plz":10666},{"class":"org.strotmann.bic.BankIdentCode","id":3,"bankname":"Aareal Bank Zw L","bic":"AARBDE5W108","blz":51010800,"ort":"Wiesbaden","plz":65011},{"class":"org.strotmann.bic.BankIdentCode","id":4,.........] 

我想訪問其組件

"id":1,"bankname":"Sparkasse .... 
"id":2,"bankname":"Aareal 

和每個組件有getAt("bankname")獲得其值

我可以使用哪些方法?

彼得 多特蒙德,德國

+0

訪問的是你的最終問題在這裏?你解析JSON時遇到問題,還是你想構建一些地圖來存儲結果? – cfrick 2014-09-25 15:58:38

+0

如果您正在使用休息客戶端構建器,那麼在使用'resp.json'而不是'resp.text'之後,您可以使用'resp.json.collect {it.bankName}'獲取所有銀行名稱(例如)。 – dmahapatro 2014-09-25 17:27:56

+0

這不是REST響應,因爲它不包含鏈接。客戶端不應該知道URI結構的任何信息,他們應該獲得URI或URI模板的鏈接... – inf3rno 2014-09-25 19:04:49

回答

1

您可以使用此JSONArrayJSONObject

JSONArray array = new JSONArray(textResponse); 

並使用array.getJSONObject(index)獲得JSONObjectarray.length()獲得元素的數量。

JSONObject jsonObject = array.getJSONObject(0); 
String bankname = jsonObject.getString(bankname); 
int id = jsonObject.getInt(id); 
+0

感謝德國向尼泊爾,它的工作原理 – user3647093 2014-09-25 18:54:04

+0

很高興爲您效勞。 – Ramsharan 2014-09-25 18:57:51

0

如果您正在使用的Grails/Groovy的,您可以使用此以下:

def resp = grails.converters.JSON.parse(response) 

然後,通過resp.id,resp.bankname