Utilisez une colonne jsonb (pas jsonb[] !) avec la structure suivante :
select
'[{
"adresse_line-1": "a11",
"adresse_line-2": "a12",
"postalcode": "code1"
},
{
"adresse_line-1": "a21",
"adresse_line-2": "a22",
"postalcode": "code2"
}
]'::jsonb;
Cependant, une table régulière liée à la table principale est une meilleure option.
Pourquoi pas jsonb[] ? Jetez un œil à la définition JSON :
JSON est construit sur deux structures :
- Une collection de paires nom/valeur. Dans divers langages, ceci est réalisé sous la forme d'un objet, d'un enregistrement, d'une structure, d'un dictionnaire, d'une table de hachage, d'une liste à clé ou d'un tableau associatif.
- Une liste ordonnée de valeurs. Dans la plupart des langages, ceci est réalisé sous la forme d'un tableau , vecteur, liste ou séquence.
Dans une colonne jsonb vous pouvez donc stocker un tableau d'objets. Les tentatives d'utilisation du tableau de jsonb sont probablement dues à une mauvaise compréhension de ce type de données. Je n'ai jamais vu un besoin raisonnable pour une telle solution.