array_to_json(anyarray [, pretty_bool]) |
json |
把数组作为 JSON 返回。PostgreSQL 多维数组会变成 JSON 数组的数组。如果 pretty_bool 为真,将在第 1 维元素之间添加换行符。 |
array_to_json('{{1,5},{99,100}}'::int[]) |
[[1,5],[99,100]] |
row_to_json(record [, pretty_bool]) |
json |
把行作为 JSON 返回。如果 pretty_bool 为真,将在第 1 层元素之间添加换行符。 |
row_to_json(row(1,'foo')) |
{"f1":1,"f2":"foo"} |
to_json(anyelement) |
json |
把值作为 JSON 返回。如果数据类型不是内建的,并且存在从该类型到 json 的转换,则将使用转换函数执行转换。否则,对于数字、布尔或空值之外的任何值,都将使用其文本表示,并进行转义和加引号使其成为合法的 JSON。 |
to_json('Fred said "Hi."'::text) |
"Fred said \"Hi.\"" |
json_array_length(json) |
int |
返回最外层 JSON 数组中的元素数量。 |
json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]') |
5 |
json_each(json) |
SETOF key text, value json |
把最外层 JSON 对象展开为键/值对集合。 |
select * from json_each('{"a":"foo", "b":"bar"}') |
key | value
-----+-------
a | "foo"
b | "bar"
|
json_each_text(from_json json) |
SETOF key text, value text |
把最外层 JSON 对象展开为键/值对集合。 The returned value will be of type text. |
select * from json_each_text('{"a":"foo", "b":"bar"}') |
key | value
-----+-------
a | foo
b | bar
|
json_extract_path(from_json json, VARIADIC path_elems text[]) |
json |
Returns JSON object pointed to by path_elems. |
json_extract_path('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4') |
{"f5":99,"f6":"foo"} |
json_extract_path_text(from_json json, VARIADIC path_elems text[]) |
text |
Returns JSON object pointed to by path_elems. |
json_extract_path_text('{"f2":{"f3":1},"f4":{"f5":99,"f6":"foo"}}','f4', 'f6') |
foo |
json_object_keys(json) |
SETOF text |
Returns set of keys in the JSON object. Only the “outer” object will be displayed. |
json_object_keys('{"f1":"abc","f2":{"f3":"a", "f4":"b"}}') |
json_object_keys
------------------
f1
f2
|
json_populate_record(base anyelement, from_json json, [, use_json_as_text bool=false] |
anyelement |
Expands the object in from_json to a row whose columns match the record type defined by base. Conversion will be best effort; columns in base with no corresponding key in from_json will be left null. If a column is specified more than once, the last value is used. |
select * from json_populate_record(null::x, '{"a":1,"b":2}') |
a | b
---+---
1 | 2
|
json_populate_recordset(base anyelement, from_json json, [, use_json_as_text bool=false] |
SETOF anyelement |
Expands the outermost set of objects in from_json to a set whose columns match the record type defined by base. Conversion will be best effort; columns in base with no corresponding key in from_json will be left null. If a column is specified more than once, the last value is used. |
select * from json_populate_recordset(null::x, '[{"a":1,"b":2},{"a":3,"b":4}]') |
a | b
---+---
1 | 2
3 | 4
|
json_array_elements(json) |
SETOF json |
把 JSON 数组展开为 JSON 元素集合。 |
json_array_elements('[1,true, [2,false]]') |
value
-----------
1
true
[2,false]
|