↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 函数百科 / JSON 函数和操作符

FUNCTIONJSON 函数和操作符

jsonb_populate_record_valid

用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。

Function for testing jsonb_populate_record.

JSON 函数和操作符 引入 17 现存至 20 devel 1 条签名 0 次签名变更

签名数
1 条
引入版本
17
状态
现存
签名变更
未变过
本版来源
英文原文

PostgreSQL 18.7 手册 · 9.16 JSON 函数和操作符 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

说明

用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。
jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean
用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。

签名

PostgreSQL 18.7 里 jsonb_populate_record_valid 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean

    用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。
    • select jsonb_populate_record_valid(NULL::jsb_char2, '{"a": "aaa"}'); jsonb_populate_record_valid ----------------------------- f (1 row)
    • select * from jsonb_populate_record(NULL::jsb_char2, '{"a": "aaa"}') q;ERROR: value too long for type character(2)
    • select jsonb_populate_record_valid(NULL::jsb_char2, '{"a": "aa"}'); jsonb_populate_record_valid ----------------------------- t (1 row)
    另外 1 个示例
    • select * from jsonb_populate_record(NULL::jsb_char2, '{"a": "aa"}') q; a ---- aa (1 row)

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 17 ← 16 新增此函数

    PostgreSQL 17 起可用

签名矩阵

每条签名在给出了签名的 4 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 17181920
jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
JSON FUNCTIONS AND OPERATORS JSON 函数和操作符 61 个 ↗
array_to_json 1 array_to_json ( anyarray [, boolean ] ) → json 9.42 次
将 SQL 数组转换为 JSON 数组。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级数组元素之间添加。 现存
json 1 json ( expression [ FORMAT JSON [ ENCODING UTF8 ]] [ { WITH | WITHOUT } UNIQUE [ KEYS ]] ) → json —
将给定的 text 或 bytea 字符串表达式(采用 UTF8 编码)转换为 JSON 值。如果 expression 为 NULL,则返回 SQL 空值。如果指定了 WITH UNIQUE,则 expression 不能包含重复的对象键。 现存
json_array 2 json_array ( [ { value_expression [ FORMAT JSON ] } [, ...] ] [ { NULL | ABSENT } ON NULL ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) —
从一系列 value_expression 参数或 query_expression 的结果构造 JSON 数组;后者必须是返回单列的 SELECT 查询。如果指定了 ABSENT ON NULL,则忽略 NULL 值。使用 query_expression 时始终如此。如果查询不返回任何行,则返回空 JSON 数组。 现存
json_array_elements 1 json_array_elements ( json ) → setof json 9.41 次
将顶级 JSON 数组展开为一组 JSON 值。 现存
json_array_elements_text 1 json_array_elements_text ( json ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
json_array_length 1 json_array_length ( json ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
json_build_array 1 json_build_array ( VARIADIC "any" ) → json —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
json_build_object 1 json_build_object ( VARIADIC "any" ) → json —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
json_each 1 json_each ( json ) → setof record ( key text, value json ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。 现存
json_each_text 1 json_each_text ( json ) → setof record ( key text, value text ) 9.41 次
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
JSON_EXISTS 1 JSON_EXISTS ( context_item, path_expression [PASSING { value AS varname } [, ...]] [{ TRUE | FALSE | UNKNOWN | ERROR } ON ERROR]) → boolean —
如果将 SQL/JSON path_expression 应用于 context_item 后产生了任何项,则返回 true,否则返回 false。 现存
json_extract_path 1 json_extract_path ( from_json json, VARIADIC path_elems text[] ) → json —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
json_extract_path_text 1 json_extract_path_text ( from_json json, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
json_object 3 json_object ( [ { key_expression { VALUE | ':' } value_expression [ FORMAT JSON [ ENCODING UTF8 ] ] }[, ...] ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ]) 161 次
根据给定的所有键值对构造 JSON 对象;如果没有给出键值对,则构造空对象。key_expression 是定义 JSON 键的标量表达式,会被转换为 text 类型。它不能为 NULL,其类型也不能具有到 json 的类型转换。如果指定了 WITH UNIQUE KEYS,则 key_expression 不能重复。如果指定了 ABSENT ON NULL,则 value_expression 求值为 NULL 的键值对会从输出中省略;如果指定了 NULL ON NULL 或省略了该子句,则保留该键,并将其值设为 NULL。 现存
json_object_keys 1 json_object_keys ( json ) → setof text 9.41 次
返回顶级 JSON 对象中的键集合。 现存
json_populate_record 1 json_populate_record ( base anyelement, from_json json ) → anyelement 9.41 次
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
json_populate_recordset 1 json_populate_recordset ( base anyelement, from_json json ) → setof anyelement 9.41 次
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
JSON_QUERY 1 JSON_QUERY ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type [FORMAT JSON [ENCODING UTF8] ] ] [ { WITHOUT | WITH { CONDITIONAL | [UNCONDITIONAL] } } [ARRAY] WRAPPER] [ { KEEP | OMIT } QUOTES [ON SCALAR STRING] ] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | EMPTY { [ARRAY] | OBJECT } | DEFAULT expression } ON ERROR]) → jsonb —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
json_scalar 1 json_scalar ( expression ) —
将给定的 SQL 标量值转换为 JSON 标量值。如果输入为 NULL,则返回 SQL 空值。如果输入是数字或布尔值,则返回相应的 JSON 数字或布尔值。对于其他值,则返回 JSON 字符串。 现存
json_serialize 1 json_serialize ( expression [ FORMAT JSON [ ENCODING UTF8 ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ] ) —
将 SQL/JSON 表达式转换为字符或二进制字符串。expression 可以是任意 JSON 类型、任意字符串类型,或采用 UTF8 编码的 bytea。 RETURNING 中使用的返回类型可以是任意字符串类型或 bytea,默认为 text。 现存
json_strip_nulls 1 json_strip_nulls ( target json [,strip_in_arrays boolean ] ) → json 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
JSON_TABLE 1 JSON_TABLE ( context_item, path_expression [ AS json_path_name] [ PASSING { value AS varname } [, ...] ] COLUMNS ( json_table_column [, ...] ) [ PLAN ( json_table_plan ) | PLAN DEFAULT ( { OUTER | INNER } [ , { CROSS | UNION } ] | { CROSS | UNION } [ , { OUTER | INNER } ] ) ] [ { ERROR | EMPTY [ARRAY]} ON ERROR] ) 201 次
下面更详细地说明每个语法元素。 现存
json_to_record 1 json_to_record ( json ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
json_to_recordset 1 json_to_recordset ( json ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
json_typeof 1 json_typeof ( json ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
JSON_VALUE 1 JSON_VALUE ( context_item, path_expression [PASSING { value AS varname } [, ...]] [RETURNING data_type] [ { ERROR | NULL | DEFAULT expression } ON EMPTY] [ { ERROR | NULL | DEFAULT expression } ON ERROR]) → text —
返回将 SQL/JSON path_expression 应用于 context_item 的结果。 现存
jsonb_array_elements 1 jsonb_array_elements ( jsonb ) → setof jsonb —
将顶级 JSON 数组展开为一组 JSON 值。 现存
jsonb_array_elements_text 1 jsonb_array_elements_text ( jsonb ) → setof text —
将顶级 JSON 数组展开为一组 text 值。 现存
jsonb_array_length 1 jsonb_array_length ( jsonb ) → integer —
返回顶级 JSON 数组中的元素数量。 现存
jsonb_build_array 1 jsonb_build_array ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建可能异构类型的 JSON 数组。每个参数都按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_build_object 1 jsonb_build_object ( VARIADIC "any" ) → jsonb —
根据可变参数列表构建一个 JSON 对象。按照惯例,参数列表由交替的键和值组成。键参数会被强制转换为文本;值参数则按照 to_json 或 to_jsonb 进行转换。 现存
jsonb_each 1 jsonb_each ( jsonb ) → setof record ( key text, value jsonb ) —
将顶级 JSON 对象展开为一组键/值对。 现存
jsonb_each_text 1 jsonb_each_text ( jsonb ) → setof record ( key text, value text ) —
将顶级 JSON 对象展开为一组键/值对。返回的 value 的类型为 text。 现存
jsonb_extract_path 1 jsonb_extract_path ( from_json jsonb, VARIADIC path_elems text[] ) → jsonb —
在指定路径下提取 JSON 子对象。(这在功能上相当于#> 操作符,但在某些情况下,将路径写成可变参数列表会更方便。) 现存
jsonb_extract_path_text 1 jsonb_extract_path_text ( from_json jsonb, VARIADIC path_elems text[] ) → text —
将指定路径上的 JSON 子对象提取为 text。(这在功能上等同于#>> 操作符。) 现存
jsonb_insert 1 jsonb_insert ( target jsonb, path text[], new_value jsonb [, insert_after boolean ] ) → jsonb —
返回插入 new_value 的 target。如果 path 指派的项是一个数组元素,则当 insert_after 为假(此为默认值)时,new_value 将被插入到该项之前;当 insert_after 为真时,则插入到该项之后。如果由 path 指派的项是一个对象字段,则只在对象不包含该键时才插入 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组下标,那么当下标为负时,新值会被添加到数组开头;当下标为正时,新值会被添加到数组末尾。 现存
jsonb_object 2 jsonb_object ( text[] ) → jsonb —
从 text 数组构造 JSON 对象。该数组必须是一维且包含偶数个成员,此时将成员按交替的键/值对处理;或者是二维数组,且每个内部数组恰好有两个元素,将这两个元素作为一个键/值对。所有值都转换为 JSON 字符串。 现存
jsonb_object_keys 1 jsonb_object_keys ( jsonb ) → setof text —
返回顶级 JSON 对象中的键集合。 现存
jsonb_path_exists 1 jsonb_path_exists ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
检查 JSON 路径是否为指定的 JSON 值返回任何项。(这只对 SQL 标准 JSON 路径表达式有用,而不适用于谓词检查表达式,因为后者总是返回一个值。)如果指定了 vars 参数,则它必须是一个 JSON 对象,并且它的字段提供要替换到 jsonpath 表达式中的具名值。如果指定了 silent 参数并为 true,函数会抑制与@? 和 @@操作符相同的错误。 现存
jsonb_path_exists_tz 1 jsonb_path_exists_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_match 1 jsonb_path_match ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
返回指定 JSON 值的 JSON 路径谓词检查的 SQL 布尔结果。(这只对谓词检查表达式有用,而不适用于 SQL 标准 JSON 路径表达式,因为如果路径结果不是单个布尔值,它将失败或返回 NULL。)可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_match_tz 1 jsonb_path_match_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → boolean —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query 1 jsonb_path_query ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
为指定的 JSON 值返回由 JSON 路径返回的所有 JSON 项。对于 SQL 标准 JSON 路径表达式,它返回从 target 中选出的 JSON 值。对于谓词检查表达式,它返回谓词检查的结果:true、false 或 null。可选的 vars 和 silent 参数的作用与 jsonb_path_exists 相同。 现存
jsonb_path_query_array 1 jsonb_path_query_array ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
以 JSON 数组的形式返回由 JSON 路径为指定的 JSON 值返回的所有 JSON 项。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_array_tz 1 jsonb_path_query_array_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_first 1 jsonb_path_query_first ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
为指定的 JSON 值返回由 JSON 路径返回的第一个 JSON 项。如果没有结果则返回 NULL。参数与 jsonb_path_query 相同。 现存
jsonb_path_query_first_tz 1 jsonb_path_query_first_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_path_query_tz 1 jsonb_path_query_tz ( target jsonb, path jsonpath [, vars jsonb [, silent boolean ]] ) → setof jsonb —
这些函数的作用类似于上面描述的没有_tz 后缀的对应函数,不同之处在于这些函数支持需要时区感知转换的日期/时间值的比较。下面的示例需要将仅日期值 2015-08-02 解释为带有时区的时间戳,因此结果取决于当前的 TimeZone 设置。由于这种依赖性,这些函数被标记为稳定的,这意味着这些函数不能用于索引。它们的对应函数是不可变的,因此可以用于索引;但如果要求进行这样的比较,它们将抛出错误。 现存
jsonb_populate_record 1 jsonb_populate_record ( base anyelement, from_json jsonb ) → anyelement —
将顶级 JSON 对象展开为一行,其复合类型与 base 参数相同。系统会扫描该 JSON 对象,查找名称与输出行类型列名匹配的字段,并将其值插入输出中的对应列。(不对应任何输出列名的字段会被忽略。)在典型用法中,base 的值就是 NULL,这意味着凡是不匹配对象字段的输出列都会被填充为空值。但是,如果 base 不是 NULL,那么其中包含的值将用于那些不匹配的列。 现存
jsonb_populate_record_valid 1 jsonb_populate_record_valid ( base anyelement, from_json json ) → boolean —
用于测试 jsonb_populate_record 的函数。对于给定的输入 JSON 对象,如果 jsonb_populate_record 能够无错误地完成,即该输入有效,则返回 true;否则返回 false。 现存
jsonb_populate_recordset 1 jsonb_populate_recordset ( base anyelement, from_json jsonb ) → setof anyelement —
将由对象组成的顶级 JSON 数组展开为一组行,其复合类型与 base 参数相同。JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_pretty 1 jsonb_pretty ( jsonb ) → text —
将给定的 JSON 值转换为经过美化并带有缩进的文本。 现存
jsonb_set 1 jsonb_set ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean ] ) → jsonb —
返回 target,将 path 指定的项替换为 new_value,如果 create_if_missing 为真(此为默认值)并且 path 指定的项不存在,则添加 new_value。路径中的所有前面步骤都必须存在,否则将不加改变地返回 target。与面向路径的操作符一样,path 中的负整数从 JSON 数组末尾计数。如果最后一个路径步骤是超出范围的数组索引,并且 create_if_missing 为真,那么如果索引为负,新值将添加到数组的开头,如果索引为正,则添加到数组的结尾。 现存
jsonb_set_lax 1 jsonb_set_lax ( target jsonb, path text[], new_value jsonb [, create_if_missing boolean [, null_value_treatment text ]] ) → jsonb —
如果 new_value 不是 NULL,则行为与 jsonb_set 完全相同。否则,根据 null_value_treatment 的值进行处理,其值必须是'raise_exception'、'use_json_null'、'delete_key' 或'return_target' 之一。默认值为'use_json_null'。 现存
jsonb_strip_nulls 1 jsonb_strip_nulls ( target jsonb [,strip_in_arrays boolean ] ) → jsonb 181 次
递归地删除给定 JSON 值中所有值为 null 的对象字段。如果 strip_in_arrays 为 true(默认值为 false),那么数组中的 null 元素也会被删除;否则不会删除。裸露的 null 值永远不会被删除。 现存
jsonb_to_record 1 jsonb_to_record ( jsonb ) → record —
将顶级 JSON 对象展开为具有由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)输出记录由 JSON 对象的字段填充,与上面描述的 json[b]_populate_record 的方式相同。由于没有输入记录值,不匹配的列总是用空值填充。 现存
jsonb_to_recordset 1 jsonb_to_recordset ( jsonb ) → setof record —
将顶级 JSON 对象数组展开为一组由 AS 子句定义的复合类型的行。(与所有返回 record 的函数一样,调用查询必须使用 AS 子句显式定义记录的结构。)JSON 数组中的每个元素都按照上文对 json[b]_populate_record 的说明进行处理。 现存
jsonb_typeof 1 jsonb_typeof ( jsonb ) → text —
以文本字符串形式返回顶级 JSON 值的类型。可能的类型有 object、array、string、number、boolean 和 null。(null 的结果不应与 SQL NULL 混淆;参见示例。) 现存
row_to_json 1 row_to_json ( record [, boolean ] ) → json 9.42 次
将 SQL 复合值转换为 JSON 对象。该行为与 to_json 相同,只是如果可选布尔参数为真,换行符将在顶级元素之间添加。 现存
to_json 1 to_json ( anyelement ) → json 9.41 次
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存
to_jsonb 1 to_jsonb ( anyelement ) → jsonb —
将任何 SQL 值转换为 json 或 jsonb。数组和复合值递归地转换为数组和对象(多维数组在 JSON 中变成数组的数组)。否则,如果存在从 SQL 数据类型到 json 的类型转换,则类型转换函数将用于执行转换;[a] 否则,将生成一个标量 JSON 值。对于除数字、布尔值或空值之外的任何标量,将使用文本表示,并根据需要进行转义,使其成为有效的 JSON 字符串值。 现存

本站手册收录 jsonb_populate_record_valid 的版本:17.1218.719rc220 devel

签名与示例依据同版本 PostgreSQL 手册,中文说明来自已核对的同版本手册与审阅译文,最后同步 2026-11-13。

译文有误请提交到 pgsty/pgdoc;本站渲染或数据的问题提交到 pgsty/pgweb。