json - 选择作为 JSON 对象 {key : {}}

标签 json postgresql plpgsql

我的 table :

ID | something1 | something2 | ...
1  | meow       | 5          |
2  | 4          | KITTIES    |

有没有办法选择格式为 JSON 的数据 {"1":{"something1":"meow","something2":5},"2":{...}}?

最佳答案

如果您不介意在一行的 JSON 表示中重复 ID 字段,您可以这样做:

SELECT 
  format('{%s}',
    string_agg(
      format(
        '%s:%s',
        to_json(ID::text),
        row_to_json(my_table)
      ), ','
    ), ''
  )::json as json_object
FROM my_table;

这会为您提供一个 JSON 对象,其中包含表中每一行的子对象,以 ID 字段中的值作为键。

SQLFiddle

参见 this question了解更多详情。

关于json - 选择作为 JSON 对象 {key : {}},我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30784410/

相关文章:

sql - PostgreSQL 函数返回表或 SETOF

python JSON数组换行符

javascript - 从嵌套响应中获取 json 值

postgresql - SELECT 多行多列到一个记录变量中

sql - 如何更正此 sql 分组查询? (我觉得这个是sql generic,我们用的是postgresql)

json - 使用 Dapper ORM (.NET Core) 将 JSON 插入 PostgreSQL 数据库

postgresql - 从通用触发器中的不同列获取值

php - 验证 JSON 是否在 PHP 上具有确定的结构

ios - 使用 Objective-C 从 url 检索 JSON

sql - 使用自连接在 row_to_json() 中复制 JSON 元素