使用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

09-18 01:37