the table definition is:
chat_id serial primary key, last_update timestamp, messages json[] and want insert record this:
insert chats (messages) values ('{{"sender":"pablo","body":"they on us"}}'); with error:
error: malformed array literal: "{{"sender":"pablo","body":"they on us"}}" line 1: insert chats (messages) values ('{{"sender":"pablo","bo...
i have tried approach :
insert chats (messages) values (array('{"sender":"pablo","body":"they on us"}')); note updating row , inserting array_append works ok.
i think clash between json notation starts { , short hand array notation in postgres string representation of array also denoted {.
the following works:
insert chats (messages) values (array['{"sender":"pablo","body":"they on us"}']::json[]); this avoids ambiguity of {{ using explicit array constructor.
to make array json array need either cast string json or resulting array json[] (see example above). casting whole array makes easier if have more 1 json document in row:
insert chats (messages) values (array['{"sender":"pablo","body":"they on us"}', {"sender":"arthur"}']::json[]); alternatively:
insert chats (messages) values (array['{"sender":"pablo","body":"they on us"}'::json, {"sender":"arthur"}'::json]);
Comments
Post a Comment