KRL:将字符串解析为 JSON

发布于 2024-10-27 19:58:12 字数 416 浏览 0 评论 0原文

使用 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()之类的东西?

After using http:get(), I receive back a string from picking the "content" from the hash:

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

However, since json_resp is a string and not an actual JSON object, I can't run a command like this:

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

Is there a way to tell KRL that I want to parse json_resp as JSON? An eval() or something, perhaps?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

巴黎盛开的樱花 2024-11-03 19:58:12

decode() 运算符正是您想要的。它对 JSON 字符串进行操作,尝试将其转换为本机 KRL 对象。请注意,KRL 还具有在本机 KRL 上运行的 encode()对象并返回该对象的 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

The decode() operator does just what you want. It operates on a JSON string, attempting to convert it to a native KRL object. Note that KRL also has encode() which operates on a native KRL object and returns a JSON string representation of that object.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文