Mat*_*irl 5 postgresql json nested
我需要获取以下JSON对象作为输出:
"{"table" : "test", "column 1" : {"pos" : 1, "name" : "col1", "type" : "integer"},
"column 2" : {"pos" : 2, "name" : "col2", "type" : "date"}}"
Run Code Online (Sandbox Code Playgroud)
当我使用
build_json_object('table','test', 'column 1', build_json_object('pos',1,'name','col1','type','integer'), 'column 2', build_json_object('pos',2,'name','col2','type','date'));
Run Code Online (Sandbox Code Playgroud)
它引发错误:错误:函数build_json_object(未知,整数,未知,未知,未知,未知)不存在
当我使用
build_json_object('table','test', 'column 1',('pos',1,'name','col1','type','integer'), 'column 2', ('pos',2,'name','col2','type','date'));
Run Code Online (Sandbox Code Playgroud)
它只会产生错误的结果:
"{"table" : "test", "column 1" : {"f1":"pos", "f2": 1, "f3":"name", "f4": "col1", "f5":"type", "f6": "integer"},
"column 2" : {"f1":"pos", "f2": 2, "f3":"name", "f4": "col2", "f5":"type", "f6": "date"}}"
Run Code Online (Sandbox Code Playgroud)
如何使用build_json_object函数生成嵌套的JSON对象?
提示-从嵌套最多的对象开始逐步构建表达式。使用适当的缩进。请注意,该表达式在某种程度上类似于结果。(我将主表达式包裹起来jsonb_pretty()以获得不错的输出):
select
jsonb_pretty(
json_build_object(
'table', 'test',
'column 1', json_build_object('pos', 1, 'name', 'col1', 'type', 'integer'),
'column 2', json_build_object('pos', 2, 'name', 'col2', 'type', 'date')
)::jsonb
);
jsonb_pretty
---------------------------
{ +
"table": "test", +
"column 1": { +
"pos": 1, +
"name": "col1", +
"type": "integer"+
}, +
"column 2": { +
"pos": 2, +
"name": "col2", +
"type": "date" +
} +
}
(1 row)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1076 次 |
| 最近记录: |