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.