sql - PostgreSQL:使用数组中选择的特定对象创建 JSON 消息
问题描述
我有这种格式的数据:
[{"id":"b","type":"user"},{"id":"c","type":"system"}]
想要生成仅选择“id”的 JSON 消息,例如:
[{"id":"b"},{"id":"c"}]
到目前为止,我只能拆分它们并删除“类型”,然后与 [] 连接
select json_array_elements_text(column1)::jsonb #- '{type}'
from (
select '[{"id":"b","type":"user"},{"id":"c","type":"system"}]'::json as column1
) t
有没有更好的方法(我确定有),请帮忙谢谢。
编辑:
未来可能除了“id”和“type”之外还有其他属性,代码只需要引用“id”即可。
[{"id":"b","type":"user"},{"id":"c","type":"system"}, {"id":"d","type":"system", "flag":"Y"}]
解决方案
我必须建议下一个流程:
select array_agg(row_to_json(t.*)) from (
select id
from jsonb_to_recordset('[{"id":"b","type":"user"},{"id":"c","type":"system"}]'::jsonb) as x(id varchar, type varchar)
) t;
你可以在这里玩 SQL
推荐阅读
- python - ValueError: Expected 2D array, got 1D array instead - 在使用 model.predict() 时发生
- apache-nifi - NiFi InvokeHTTP 处理器:在 NiFi 1.10.0 上 OK,在 NiFi 1.11.4 上错误 okhttp3.internal.http2.ConnectionShutdownException
- node.js - Npm 没有在 NestJS 启动项目中安装 devDependencies 的所有依赖项
- wordpress - WooCommerce 订阅 - 仅在切换订阅时更改添加到购物车按钮文本
- php - 以编程方式将 TAX 应用于运输
- c++ - mingw64链接器(ld)错误:XXX.a:lib文件无法识别:文件格式无法识别
- python - 蝗虫:HTTPConnectionClosed
- python - 无法使用 pafy 获取喜欢、不喜欢
- c++ - for循环遍历
- json - 错误 - '列表
' 不是“数据”类型的子类型