postgresql中输出 JSON 结果操作和方法
将表eat作为操作表
select * from test.eat;
row_to_json()函数,针对的是一条记录,将每一条数据转换成json类型的数据,最后结果返回json对象。
案例如下:
select row_to_json(eat) from test.eat;
将每一条数据返回一个json串
在只查询指定的列时,可以使用row()结构函数
案例:
select row_to_json(row(kind)) from test.eat;
json中用f1作为列名称,和需求不同,另一种方法可以将f1替换成正确的kind列名。案例如下:
select row_to_json(ta ) as kind from
(select kind from test.eat) ta;
除了row_to_json()函数外,另外一种常见的方法是用array_agg和array_to_json。
其中array_agg是一个聚合函数,他将一列中的数据组合成数组。
array_to_json以postgresql数组 来拼合成一个单一的json值。
案例:
select array_agg(eat) from test.eat;
sql结果返回一个数组
array_agg和array_to_json一起使用。
案例:
select array_to_json(array_agg(eat)) from test.eat;
返回结果是一个json串。结果如下:
新案例:
select row_to_json(ta) from
(
select 'autumn' as text,'autumn' as pronunciation,
(select array_to_json(array_agg(eat)) from test.eat) as definitions
) ta;
输入结果如下: