--PostgreSQL JSON 函数功能使用

2021-05-06 00:00:00 功能 数据 专区 格式 格式化

PostgreSQL 的jsonb 功能中的函数功能可以快速的对PG中的JSON数据进行处理, 对于JSON的操作函数多达20多个功能,我们下面对常用的功能进行相关的讲解.


1  调整信息为json格式或jsonb


select to_json('json is "create type"'::text)


对于要进行输入的数据可以通过to_json来进行重新的格式化,避免输入数据时格式错误.

select to_jsonb('json is "create type"'::text)


2  对包含大括号的文本序列化的数据

select json_object('{a, 1, b, "def", c, 3.5}');


3  对不包含大括号的文本进行JSON格式化

select json_build_object('foo',1,'bar',2);



4  把格式的数组变为 JSON 格式,通过两个有序的list 来组成多个key value的JSON 串

select json_object('{name, Austin}', '{name,Simon}');



上面的格式化函数可以将准备好的数据变为PG 支持的 JSON OR JSONB格式的数据,方便输入到系统中.


除了相关的格式化参数, PG 还提供了部分JSON 或者 JSONB 的数据处理的参数.


1  PG 计算参数,计算数组的个数

select json_array_length('[1,2,3,{"name":"Austin","name":["Simon","Tim"]},4]');



2  将JSON 数据变化为表格化的数据

select * from json_each('{"name":"foo", "name":"bar"}');


3  将当前的JOSN 数据转换为行列模式

select * from json_each_text('{"name":"foo", "name":"bar"}');

4 挑拣出当前JSON 数据中key 因子

select json_object_keys('{"name":"Austin","compound":{"compound_c":"a-@e", "name":"simon"}}');

5  判断数据的类型  json_typeof

select json_typeof('false');


6  格式化JSONB 数据

SELECT jsonb_pretty('{"id": "c-1010", "type": "c-1012"}'::jsonb);


同时jsonb_pretty 数据中也有一些其他的问题,例如如果云一致的情况下,会留下后一行的数据



相关文章