Um zu erfahren, wie Sie ein JSON-Objekt untersuchen, lesen Sie bitte zuerst den folgenden Artikel: Zugreifen auf JSON-OBJEKTE in Datenbankschemas.
In einigen Fällen können die JSON-Objekte auch selbst JSON-Objekte enthalten (verschachtelte Objekte). Diese können identifiziert werden, weil der Text, der beim Ausführen eines ::TEXT hat die folgende Struktur:
{" ":{"SPALTENNAME 1": , "SPALTENNAME 1": , ... etc}, {" ":{"SPALTENNAME 2": , "SPALTENNAME 2": , ... usw}, ... usw}
Beispiel:
Oder:
Um auf Elemente der verschachtelten Elemente zuzugreifen, müssen Sie zuerst zum verschachtelten Objekt selbst gelangen und feststellen, welche Informationen Sie erhalten möchten.
- Um auf ein Element in einem Objekt zuzugreifen, verwenden Sie: ->>
- Um auf ein Objekt innerhalb eines Objekts zuzugreifen, verwenden Sie: ->
Im obigen Screenprint sehen wir zum Beispiel, dass "Communities" ein verschachteltes Objekt aus dem "applications"-Objekt in der "cqx_data.community_activity_applications"-Tabelle, die ein Feld namens "user_count" enthält. Um die spezifische user_count von . zu erhalten community Aktivität Ich muss daher zuerst auf das Objekt "Anwendungen" zugreifen, um zum Objekt "Communities" zu gelangen, um dann den spezifischen Feldwert "user_count" abzurufen.
Dies kann auf zwei Arten erfolgen, indem Sie entweder eine Unterauswahl verwenden:
SELECT split_communities_object ->> 'user_count' as user_count_communities, * FROM (SELECT *, Anwendungen -> 'Communities' AS split_communities_object FROM cqx_data.community_activity_applications ) splitObject
Oder indem Sie alles auf einmal aufteilen (direktere Option):
SELECT Anwendungen -> 'Communities' ->> 'user_count' als user_count_communities, * FROM cqx_data.community_Aktivität_Anwendungen
Das Ergebnis ist in beiden Fällen:
Notiz! Wenn das Objekt kein verschachteltes Objekt namens "Communities" enthält, ist der Wert einfach leer.