从 postgres 中选择列到 json 中

Ash*_*aya 2 postgresql json

我有一个这样的餐桌员工

name     value 
'e1'     'rahul'
'e2'     'priya'
'e3'     'abhijit'
Run Code Online (Sandbox Code Playgroud)

我需要从两列中提取json,结果是这样的

{'e1':'rahul','e2':'priya','e3':'abhijit'}
Run Code Online (Sandbox Code Playgroud)

我尝试了以下查询,结果如下

select row_to_json((name,value)) from employee 

O/P

{'f1':'e1','f2':'rahul'}
{'f2':'e1','f2':'priya'}
{'f3':'e1','f2':'abhijit'}
Run Code Online (Sandbox Code Playgroud)

我不想要那里的 f1 和 f2 名称,请指教!

Dmi*_*rov 8

SELECT ROW_TO_JSON(a) FROM (SELECT name, value FROM employee) a;
Run Code Online (Sandbox Code Playgroud)


Ash*_*aya 8

感谢您的输入,但我刚刚发现我必须将 postgresql 从 9.3 升级到 9.4才能获得函数json_build_object 。它通过对查询结构进行一些更改来完成工作。

select json_agg(json_build_object(name,value)) from employee;

[{'e1':'rahul','e2':'priya','e3':'abhijit'}]
Run Code Online (Sandbox Code Playgroud)

  • 与空字符串连接有什么意义?似乎您可以明确地强制转换`name::text`,除非该列的类型已经不是 _text_ ...... (2认同)