Gebruik een jsonb (niet jsonb[]!) kolom met de structuur als volgt:
select
'[{
"adresse_line-1": "a11",
"adresse_line-2": "a12",
"postalcode": "code1"
},
{
"adresse_line-1": "a21",
"adresse_line-2": "a22",
"postalcode": "code2"
}
]'::jsonb;
Een gewone tabel gerelateerd aan de hoofdtabel is echter een betere optie.
Waarom niet jsonb[]? Bekijk de JSON-definitie:
JSON is gebouwd op twee structuren:
- Een verzameling naam/waarde-paren. In verschillende talen wordt dit gerealiseerd als een object, record, struct, woordenboek, hashtabel, ingetoetste lijst of associatieve array.
- Een geordende lijst met waarden. In de meeste talen wordt dit gerealiseerd als een array , vector, lijst of reeks.
In een jsonb-kolom kun je daarom een array van objecten opslaan. Pogingen om de array van jsonb te gebruiken zijn waarschijnlijk te wijten aan een verkeerd begrip van dit type gegevens. Ik heb nog nooit een redelijke behoefte aan een dergelijke oplossing gezien.