使用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()
运算符(operator)做你想做的事。它对 JSON 字符串进行操作,尝试将其转换为 native KRL 对象。请注意,KRL 也有 encode()
它对 native 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
关于json - KRL:将字符串解析为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5462507/