jsonb_strip_nulls()

一个用于从 JSONB 值中删除 null 值的函数

jsonb_strip_nulls() 是一个系统函数,用于从给定的 JSONB 值中删除所有值为 null 的对象字段。

jsonb_strip_nulls() 函数在 PostgreSQL 9.5 中被添加。

用法

PostgreSQL 18 及更高版本

jsonb_strip_nulls ( target jsonb [, strip_in_arrays boolean ] ) → jsonb

PostgreSQL 17 及更早版本

jsonb_strip_nulls ( jsonb ) → jsonb

删除操作将递归进行。非对象字段的 null 值不会被移除。

如果 strip_in_arrays 参数在 PostgreSQL 18 及更高版本中设置为 true(默认值为 false),则数组中的 null 元素也会被移除。

变更历史

示例

关于 json_strip_nulls() 的基本用法示例

postgres=# SELECT jsonb_strip_nulls('[{"foo":1, "bar":null}]');
 jsonb_strip_nulls 
-------------------
 [{"foo": 1}]
(1 row)

删除是递归的

postgres=# SELECT jsonb_strip_nulls($$
  [{
    "foo":
      {
         "bar":1,
         "baz":null
      }
  }]
$$);
   jsonb_strip_nulls   
-----------------------
 [{"foo": {"bar": 1}}]
(1 row)

非对象字段的 null 值不会被移除

postgres=# SELECT jsonb_strip_nulls('[1,null]'); 
 jsonb_strip_nulls 
-------------------
 [1, null]
(1 row)

分类

JSON, 系统函数

另请参阅

json_strip_nulls(), jsonb_set_lax()

反馈

提交关于“jsonb_strip_nulls()”的任何评论、建议或更正请在此处 提交