[英]Add JSON object to an specific key in Postgres
我有一个具有这种结构的 JSON:
[
{
"myKey":[
{
"value":1
},
{
"value":2
}
],
"secondKey":[
{
"value":1
},
{
"value":2
}
]
}
]
我需要添加评估密钥的对象,例如,为myKey
添加:
[
{
"myKey":[
{
"value":1
},
{
"value":2
},
{
"new value":3
}
],
"secondKey":[
{
"value":1
},
{
"value":2
}
]
}
]
考虑到我只是使用 postgres 选择和程序,正确的方法是什么。
将jsonb_set
与与{"new value":3}
连接的原始myKey
数组一起使用。 CTE t(j)
仅用于演示。
with t(j) as ( values (
'[{
"myKey":[{"value":1}, {"value":2}], "secondKey":[{"value":1},{"value":2}]
}]'::jsonb))
SELECT jsonb_set(j, '{0, myKey}', j->0->'myKey' || '{"new value":3}')
FROM t;
结果:
[
{
"myKey": [
{
"value": 1
},
{
"value": 2
},
{
"new value": 3
}
],
"secondKey": [
{
"value": 1
},
{
"value": 2
}
]
}
]
您可能更喜欢使用jsonb_build_object('new value', 3)
而不是'{"new value":3}'
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.