2011-03-28 119 views
3

使用http:get()後,我收到回從pick荷蘭國際集團從散「內容」的字符串:KRL:解析字符串作爲JSON

response = http:get(webservice_url, {"key1": value1, "key2": value2}); 
json_resp = response.pick("$..content"); 

然而,由於json_resp是一個字符串,而不是一個實際的JSON對象,我不能運行這樣的命令:

value = json_resp.pick("$..string"); 

有沒有辦法告訴KRL,我想分析json_resp作爲JSON?可能是eval()什麼的?

回答

4

decode()符不只是你想要什麼。它在JSON字符串上運行,試圖將其轉換爲本地KRL對象。請注意,KRL也有encode(),它對本地KRL對象進行操作並返回該對象的JSON字符串表示。

response = http:get(webservice_url, {"key1": value1, "key2": value2}); 
json_resp = response.pick("$..content").decode(); 
value = json_resp.pick("$..string"); 
// will work since json_resp is now a native KRL object