PostgreSQL输出到JSON对象/数组

时间:2018-08-03 07:44:50

标签: sql postgresql

我正在运行PostgreSQL,正在尝试将其转换为

SELECT car_id AS id, car_model AS model FROM cars

对此:

[{ "id" : 123, "model" : "Fiat" }, {"id": 124, "model": "BMW"}, ...]

我尝试过:

SELECT json_agg(
           json_build_object(car_id AS id),
           json_build_object(car_model AS model)
       ) FROM cars

还有很多其他东西,但似乎卡住了

1 个答案:

答案 0 :(得分:2)

json_agg函数中,您只能尝试使用一个json_build_object

json_build_object从文档中进行解释。

  

从可变参数列表中构建JSON对象。按照惯例,参数列表由交替的键和值组成。

使用json_build_object函数参数将类似于

  

json_build_object([key1],[Key_Value1],[key2],[Key_Value2] ..)

TestDLL

CREATE TABLE cars(
   car_id INT,
   Car_Model VARCHAR(50)
);

INSERT INTO cars VALUES (1,'TEST1');
INSERT INTO cars VALUES (2,'TEST2');

查询

SELECT json_agg(json_build_object('ID', car_id , 'Model', car_model ))
from cars

结果

|                                                         result |
|----------------------------------------------------------------|
| [{"ID" : 1, "Model" : "TEST1"}, {"ID" : 2, "Model" : "TEST2"}] |

sqlfiddle