Ho cercato molto su questo e ancora senza risposta. Sto usando PostgreSQL. Il nome della colonna è "sezioni" e il tipo di colonna è json [] nell'esempio seguente.Come ottenere elementi dall'array Json in PostgreSQL
mia colonna si presenta così nel database:
sections
[{"name" : "section1",
"attributes": [{"attrkey1": "value1",
"attrkey2": "value2"},
{"attrkey3": "value3",
"attrkey4": "value4"}]
},
{"name" : "section2",
"attributes": [{"attrkey3": "value5",
"attrkey6": "value6"},
{"attrkey1": "value7",
"attrkey8": "value8"}]
}]
E 'di matrice JSON e voglio ottenere "attrkey3" nel mio risultato. Per ottenere una chiave particolare da Json, posso usare json_extract_path_text(json_column, 'json_property')
che funziona perfettamente bene. Ma non ho idea di come ottenere alcune proprietà da JSON [].
Se parlo di esempio precedente, voglio ottenere il valore della proprietà "attrkey2" da mostrare nel mio risultato. So che è un array, quindi potrebbe funzionare in modo diverso dal solito, ad es. tutti i valori del mio array agirebbero come una riga diversa, quindi potrei dover scrivere sottoquery ma non ho idea di come farlo.
Inoltre, non riesco a scrivere indice in modo statico e ad ottenere la proprietà dell'elemento json da un indice particolare. La mia query verrà generata dinamicamente, quindi non saprei mai quanti elementi ci sono all'interno di json array.
Ho visto alcuni esempi statici ma non so come implementarlo nel mio caso. Qualcuno può dirmi come farlo nella query?
Non sono sicuro di avere una colonna tipizzata 'json []' (array PostgreSQL di 'json'), o una colonna tipizzata' json', che sembra essere una matrice JSON (come nel vostro esempio). Si prega di precisare. – pozs