arrays - JSON 的 Postgres 数组避免强制转换

标签 arrays json postgresql

在 PostgresSQL 9.2 上发布以下内容:

CREATE TABLE test (j JSON, ja JSON[]);
INSERT INTO test (j) VALUES('{"name":"Alex", "age":20}' ); -- Works FINE
INSERT INTO test (ja) VALUES( ARRAY['{"name":"Alex", "age":20}', '{"name":"Peter", "age":24}'] ); -- Returns ERROR

第一个插入工作正常。 第二个插入返回错误:column "ja"is of type json[] but expression is of type text[]

我可以转换类型以防止错误:

INSERT INTO test(ja) VALUES( CAST (ARRAY['{"name":"Alex", "age":20}', '{"name":"Peter", "age":24}'] as JSON[]) ); -- Works FINE

我的问题是是否有办法避免转换?

最佳答案

insert into test(ja) values
('{"{\"name\":\"alex\", \"age\":20}", "{\"name\":\"peter\", \"age\":24}"}');

为了避免混淆转义转换每个字符串:

insert into test(ja) values
(array['{"name":"alex", "age":20}'::json, '{"name":"peter", "age":24}'::json]);

或者直接转换数组本身:

insert into test (ja) values
(array['{"name":"alex", "age":20}', '{"name":"peter", "age":24}']::json[]);

关于arrays - JSON 的 Postgres 数组避免强制转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18099589/

相关文章:

c - 数组的整数子集的总和,获取所有结果而不是第一个

postgresql - Cath 从动态查询中抛出通知 'relation already exists'

java - 如何打乱字符数组 - JAVA?

java - 在整数数组中查找缺失的数字

C++ 字节数组初始化 - 出了什么问题?

SQL - GroupByDay 从早上 6 点到早上 6 点的最佳方式

ruby-on-rails - psql 无法连接

php - 如何将带有数据的 http header 发送到 rest Api codeigniter?

php - 如何从对象中选择整数?

jquery - 使用 JQuery 从 JSON 或 XML 提要生成 HTML 表单