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.

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.