JSON 构造函数:
1. json:
- 描述:将文本表示的 JSON 转换为 jsonb 类型。
- 示例:
SELECT json('{"name": "John", "age": 30}');
JSON 查询函数:
1. -> 和 ->>:
- 描述:用于从 JSON 对象中提取字段,-> 返回 JSON 对象,->> 返回文本。
- 示例:
SELECT json_column->'name' AS name, json_column->>'age' AS age FROM table_name;
2. #> 和 #>>:
- 描述:用于从嵌套的 JSON 对象中提取字段,#> 返回 JSON 对象,#>> 返回文本。
- 示例:
SELECT json_column #> '{person, address, city}' AS city,
json_column #>> '{person, phone, 0}' AS first_phone
FROM table_name;
JSON 操作函数:
1. jsonb_agg:
- 描述:将行集合聚合为一个 JSON 数组。
- 示例:
SELECT jsonb_agg(jsonb_build_object('name', name, 'age', age)) FROM table_name;
2. jsonb_set:
- 描述:设置 JSON 对象中的特定路径的值。
- 示例:
UPDATE table_name
SET json_column = jsonb_set(json_column, '{person, address, city}', '"New York"')
WHERE condition;
JSON 索引操作符:
1. @> 和 <@:
- 描述:用于判断 JSON 对象是否包含另一个 JSON 对象,或者是否被另一个 JSON 对象包含。
- 示例:
SELECT '{"name": "John", "age": 30}'::jsonb @> '{"age": 30}'::jsonb;
2. ? 和 ?| 和 ?&:
- 描述:用于检查 JSON 对象中是否存在指定的键,? 检查单个键,?| 检查多个键中的任意一个,?& 检查多个键全部存在。
- 示例:
SELECT '{"name": "John", "age": 30}'::jsonb ? 'name';
这些函数和操作符可以帮助你在 PostgreSQL 中有效地处理 JSON 数据,包括从 JSON 文档中提取信息、构建 JSON 文档以及进行 JSON 类型的转换等。请注意,PostgreSQL 也提供了 json 类型,但 jsonb 类型更为推荐,因为它更有效率且支持更多的查询和操作。
转载请注明出处:http://www.zyzy.cn/article/detail/8186/PostgreSQL