使用http:get()
后,我从pick
接收来自哈希的“内容”返回一个字符串:
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()
之类的? 最佳答案
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