PostgreSQL

PostgreSQL 知识量:10 - 51 - 182

4.7 JSON函数><

JSON创建函数- 4.7.1 -

以下是PostgreSQL中一些用于创建JSON数据的函数:

  • json: 返回一个空的JSON对象。

  • jsonb: 返回一个空的JSONB对象。

  • json_object(text, text ...): 创建一个JSON对象,其中键和值由提供的参数指定。

  • json_object_agg(anyelement, text): 创建一个JSON对象,其中键是提供的文本参数,值是提供的值参数,并将它们聚合在一起。

  • json_array(anyelement ...): 创建一个JSON数组,其中包含提供的值参数。

  • json_build_object(text, anyelement ...): 创建一个JSON对象,其中键是提供的文本参数,值是提供的值参数。

  • json_build_array(anyelement ...): 创建一个JSON数组,其中包含提供的值参数。

JSON处理函数- 4.7.2 -

以下是PostgreSQL中一些常用的JSON处理函数:

  • json_array_append(json, text, json): 向JSON数组中追加一个元素。

  • json_array_insert(json, text, json, int): 在JSON数组的指定位置插入一个元素。

  • json_array_length(json, text): 获取JSON数组的长度。

  • json_extract(json, text): 提取JSON对象中的指定键的值。

  • json_extract_path(json, text): 提取JSON对象中的指定路径的值。

  • json_extract_path_array(json, text, int): 提取JSON对象中指定路径数组的值。

  • json_in(anyelement, json[]): 检查一个值是否存在于JSON数组中。

  • json_object_keys(json): 获取JSON对象的所有键。

  • jsonb_array_elements(jsonb[]): 展开JSONB数组,返回元素的一行一列的表。

  • jsonb_each(jsonb): 展开JSONB对象,返回键值对的一行一列的表。

  • jsonb_insert(jsonb, text, jsonb, bool): 在JSONB对象中插入或替换值。

  • jsonb_set(jsonb, text[], jsonb, bool): 在JSONB对象中设置或替换数组的值。

  • jsonb_update_using_path(jsonb, text[], jsonb, text[]): 使用路径更新JSONB对象的值。

将字符串转换成JSON格式- 4.7.3 -

在PostgreSQL中,to_json()函数可以将字符串转换为JSON格式。

以下是一个简单的示例:

SELECT to_json('{"name": "John", "age": 30, "city": "New York"}');

这个查询将返回一个JSON格式的字符串,如下所示:

{"name": "John", "age": 30, "city": "New York"}

注意:如果字符串本身已经是JSON格式,那么to_json()函数不会进行任何转换。例如,以下查询将返回相同的字符串:

SELECT to_json('{"name": "John", "age": 30, "city": "New York"}');

另外,如果想要将一个表或查询结果转换为JSON格式,可以使用to_json()函数结合其他SQL函数和操作符。例如,以下查询将返回一个包含单个行的JSON格式结果:

SELECT to_json(row(column1, column2, column3)) FROM table_name;

这将返回一个JSON对象,其中包含column1、column2和column3的值。