Pull to refresh

Comments 7

=# select 'true' :: jsonb :: bool;
bool
— t

Это точно ожидаемое поведение? Кажется должно возвращаться именно значение в bool (возможно ошибка в тексте).
Если вы по поводу символа 't' то это стандартный способ обозначения true в PostgreSQL.
По-моему, конструкции вида
'true' :: jsonb
'12345.67' :: jsonb

априори должны кидать какой-нибудь WrongFormatException. Ну, не является 'true' валидным json-объектом.

Для подобного должен существовать отдельный тип, например json_element.
json-объектом — не является. Но JSON (в ECMA-404 в частности) не обязывает на верхнем уровне держать именно объект — там должен быть Value, а он уж может быть объектом, а может быть и числом.

www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

С чего это не является валидным? Вполне себе такой же валидный, как и JSON от массива или объекта.

true — это json-значение, а не объект.

Для обратного каста есть же to_jsonb(some_value).

Sign up to leave a comment.