json

json

Il tipo di dati 'json memorizza una copia esatta del testo in ingresso, che deve essere rielaborato a ogni esecuzione. Per questo motivo, 'json conserva gli spazi bianchi semanticamente significativi tra i token, così come l'ordine delle chiavi all'interno degli oggetti 'JSON.

Se un oggetto 'JSON all'interno del valore contiene la stessa chiave più di una volta, tutte le coppie chiave/valore vengono mantenute. (Le funzioni di elaborazione considerano l'ultimo valore come quello operativo)

Il tipo di dati " json può essere utilizzato per memorizzare i dati " JSON. Tali dati possono essere memorizzati anche come testo, ma il tipo di dati " json ha il vantaggio di controllare che ogni valore memorizzato sia un valore " JSON valido.

RFC 7159 consente alle stringhe 'JSON di contenere sequenze di escape Unicode indicate da '\uXXXX. Nella funzione di input per il tipo 'json, gli escape Unicode sono consentiti indipendentemente dalla codifica del database e vengono controllati solo per la correttezza sintattica (quattro cifre esadecimali devono seguire \u).

Non è consentita più di una colonna " json in una tabella. Inoltre, si noti che solo un numero limitato di colonne di dimensioni fisse o variabili (per un totale di circa 1500 byte) può essere ospitato con il tipo di dati JSON.
SYSTEM.ADMIN(ADMIN)=> create table testjson1(c1 json, c2 varchar(1500));
CREATE TABLE
 

SYSTEM.ADMIN(ADMIN)=> create table testjson2(c1 json, c2 varchar(1800));
ERROR:  Table 'TESTJSON2' record size 65800 exceeds internal limit of 65535 bytes