sintassi di input e output JSON
Conoscere la sintassi di input e output di 'JSON.
La sintassi di input/output per i tipi di dati JSON è quella specificata in RFC 7159.
Esempi di espressioni "
json e " jsonb valide:- Valore scalare/primitivo semplice
I valori primitivi possono essere numeri, stringhe quotate, true, false o null.
SELECT '5'::json; - Array di zero o più elementi (gli elementi non devono necessariamente essere dello stesso tipo)
SELECT '[1, 2, "foo", null]'::json; - Oggetto contenente coppie di chiavi e valoriSi noti che le chiavi degli oggetti devono sempre essere stringhe quotate.
SELECT '{"bar": "baz", "balance": 7.77, "active": false}'::json; - Gli array e gli oggetti possono essere annidati in modo arbitrario
SELECT '{"foo": [true, "bar"], "tags": {"a": 1, "b": null}}'::json;
Quando si immette un valore "
JSON e lo si stampa senza ulteriori elaborazioni, " json riproduce lo stesso testo immesso. jsonb non conserva i dettagli semanticamente significativi (ad esempio gli spazi bianchi).SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;
json
-------------------------------------------------
{"bar": "baz", "balance": 7.77, "active":false}
(1 row)
SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::jsonb;
jsonb
--------------------------------------------------
{"bar": "baz", "active": false, "balance": 7.77}
(1 row)
Nota: in '
jsonb, i numeri vengono stampati in base al comportamento del tipo numerico sottostante. I numeri inseriti con la notazione " E verranno stampati senza di essa. jsonb conserva gli zeri frazionari finali, anche se questi sono semanticamente insignificanti per scopi quali i controlli di uguaglianza.Esempio:
SELECT '{"reading": 1.230e-5}'::json, '{"reading": 1.230e-5}'::jsonb;
json | jsonb
-----------------------+-------------------------
{"reading": 1.230e-5} | {"reading": 0.00001230}
(1 row)