PostgreSQL的JSON类型

    JSON类型用于存储JSON数据。使用字符串也可以存储JSON数据,但不能保证其合法性。支持JSON类型后,数据库会对数据进行合法性检查,同时提供丰富的函数。

1.JSON类型

    PostgreSQL支持JSON和JSONB。这两种类型在使用上几乎完全一致,主要区别是:

  (1)JSON类型把输入的数据原封不动的存放到数据库中。JSONB类型在存放时把JSON解析成二进制格式。

  (2)JSONB支持在其上建索引,而JSON不能,这是JSONB的一个很大的优点。

  (3)JSON中会保留多余的空格,保留重复的Key,保留Key的顺序。JSONB则完全相反,不保留多余的空格,不保留重复的Key,不保留Key的顺序。

   JSON类型与PostgreSQL数据库类型的映射:

JSON类型 PostgreSQL类型 注意事项
string text 注意字符集的一些限制
number numeric JSON中没有PostgreSQL中的“NaN”,“infinity”
boolean  boolean  JSON仅能接受小写的“true”和“false”
null (none) SQL中的NULL代表不同的意思

2.输入与输出

    JSON类型的两种等价输入方法:

select '9'::json, '"April"'::json, 'true'::json, 'null'::json;
select json'9', json'"April"', json'true', json'null';

  

    JSONB类型的两种等价输入方法:

select '9'::jsonb, '"April"'::jsonb, 'true'::jsonb, 'null'::jsonb;
select jsonb'9', jsonb'"April"', jsonb'true', jsonb'null';

 

    JSON中使用字典的实例

select json '{"name":"April","age":20,"address":"chengdu"}';

 

猜你喜欢

转载自blog.csdn.net/liyazhen2011/article/details/83024317