对于bigint

时间:2016-09-26 09:35:32

标签: javascript postgresql

我正在使用Postgres' (9.3.13)array_to_json函数将bigint id字段序列化为JSON数组。

在执行某个单元和验收测试期间,我意识到array_to_json的结果是一个数字数组而不是字符串数组,这是我所期望的。

我的问题是largest safe integer in Javascript是:
25 ^ 3 - 1(9007199254740991),

largest bignum in Postgres是:
9223372036854775807

不会导致Javascript中数字大于25^3 - 1的不安全表示?这真的是Postgres' json序列化?如果是,我如何让array_to_json返回一个字符串数组而不是数字?

1 个答案:

答案 0 :(得分:0)

将输入数组转换为文本数组:

SELECT array_to_json(array[1,2,3]::TEXT[]);
-- returns ["1","2","3"]