如何将JSON数组插入PostgreSQL的jsonb[]类型列?
如何正确将JSON数组插入PostgreSQL的jsonb[]列?
你遇到的错误是因为传入的是text[]类型数组,但目标列类型为jsonb[],PostgreSQL不会自动完成这种类型转换,必须显式指定类型转换。以下是几种可行的解决方法:
方法1:逐个元素转换为jsonb
给每个JSON字符串添加::jsonb类型转换后再组成数组:
insert into test values (array['{"a": 45.50, "b": 10}'::jsonb, '{"a": 70.50, "b": 80}'::jsonb]);
方法2:将整个text数组转换为jsonb[]
直接对整个数组进行类型转换:
insert into test values (array['{"a": 45.50, "b": 10}', '{"a": 70.50, "b": 80}']::jsonb[]);
方法3:使用jsonb字面量构造数组
用jsonb关键字直接声明每个元素的类型:
insert into test values (array[jsonb '{"a": 45.50, "b": 10}', jsonb '{"a": 70.50, "b": 80}']);
这三种方法都能解决类型不匹配的问题,将JSON对象数组正确插入到jsonb[]类型的列中。
内容的提问来源于stack exchange,提问作者Nupur
相关产品推荐
相关产品推荐

