如果非负数值有加号,则不能转换为 jsonb
cannot cast to jsonb if non-negative numeric vlaue have plus sign
以下命令有效
select '[0,1, -2, -0.3444, 5.6]'::jsonb;
但是以下 3 个不工作。
select '[0,1, -2, (+0.3444), 5.6]'::jsonb;
select '[0,1, -2, +0.3444, 5.6]'::jsonb;
select '[0,1, -2, +0, 5.6]'::jsonb;
下面的工作。
select +0.1;
select (+0.1)::text;
第一个工作示例是包含有效 JSON 文档的字符串被转换为 JSONB;其他包含有效的 PostgreSQL 算术表达式。
non-working 示例再次将字符串转换为 JSONB,但字符串包含 invalid JSON 表达式,因此不能被解析为 JSON。如果你看一下 JSON grammar, number
is integer fraction exponent
, and integer
can have digits that optionally start with -
. The sign +
is not allowed in JSON. The parentheses are not allowed, either. You can verify this e.g. using JSON validator.
以下命令有效
select '[0,1, -2, -0.3444, 5.6]'::jsonb;
但是以下 3 个不工作。
select '[0,1, -2, (+0.3444), 5.6]'::jsonb;
select '[0,1, -2, +0.3444, 5.6]'::jsonb;
select '[0,1, -2, +0, 5.6]'::jsonb;
下面的工作。
select +0.1;
select (+0.1)::text;
第一个工作示例是包含有效 JSON 文档的字符串被转换为 JSONB;其他包含有效的 PostgreSQL 算术表达式。
non-working 示例再次将字符串转换为 JSONB,但字符串包含 invalid JSON 表达式,因此不能被解析为 JSON。如果你看一下 JSON grammar, number
is integer fraction exponent
, and integer
can have digits that optionally start with -
. The sign +
is not allowed in JSON. The parentheses are not allowed, either. You can verify this e.g. using JSON validator.