2011-03-28 84 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