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类型注意事项
stringtext注意字符集的一些限制
numbernumericJSON中没有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"}';

 

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 6 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐