'a' ->> 0; --- {"b": 1} 2. selec-6ren">
gpt4 book ai didi

postgresql - 是否可以在不进行两次转换的情况下获取作为 JSON 对象字段的 JSON 对象的字段?

转载 作者:行者123 更新时间:2023-11-29 14:29:50 25 4
gpt4 key购买 nike

第二种方法是获得第二个结果的唯一方法还是其他可能的方法?

1.

select '{"a": [{"b":1}]}'::jsonb -> 'a' ->> 0;
---
{"b": 1}

2.

select ('{"a": [{"b":1}]}'::jsonb -> 'a' ->> 0)::jsonb -> 'b';
---
1

3.

select '{"a": [{"b":1}]}'::jsonb -> 'a' ->> 0 -> 'b';
---
No operator matches the given name and argument types...

最佳答案

转换(返回到 json)可能只在 2 中需要因为你正在转换 a 的第一个元素通过 ->> 发短信.试试这个:

select '{"a": [{"b":1}]}'::jsonb -> 'a' -> 0 -> 'b';

它应该可以工作并返回 1(作为 json 对象),然后您可能必须将其转换为 int 或其他适当的类型以在任何计算中重用。

或者,这也应该有效,并且也更短:

select '{"a": [{"b":1}]}'::jsonb #> '{a,0,b}';

(披露:我没有使用 postgresql 的计算机。我没有测试上述查询)

关于postgresql - 是否可以在不进行两次转换的情况下获取作为 JSON 对象字段的 JSON 对象的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53462704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com