Le jeu. 20 avr. 2023 à 22:42, Tom Lane <tgl@sss.pgh.pa.us> a écrit :
Marc Millas <marc.millas@mokadb.com> writes: > but it doesnt explain how postgres is able to put a scalar in a json or > jsonb column without pb: > I don't understand how this ('"{\"t\"}"') can be considered a valid enough > json to be inserted in a json column > and at the same time invalid for all other json uses.
That's a bare string (it's not an object). That's valid JSON per RFC 7159:
JSON can represent four primitive types (strings, numbers, booleans, and null) and two structured types (objects and arrays). ... A JSON text is a serialized value. Note that certain previous specifications of JSON constrained a JSON text to be an object or an array.
However, there certainly are some operations that require the top-level value to be an object or array.