Ich versuchte, meinen Json-Array am Beispiel abfragen hier: How do I query using fields inside the new PostgreSQL JSON datatype?postgresql json Array Abfrage
Sie verwenden das Beispiel:
SELECT *
FROM json_array_elements(
'[{"name": "Toby", "occupation": "Software Engineer"},
{"name": "Zaphod", "occupation": "Galactic President"} ]'
) AS elem
WHERE elem->>'name' = 'Toby';
Aber mein Json-Array sieht eher aus wie diese (wenn Sie das Beispiel verwenden) :
{
"people": [{
"name": "Toby",
"occupation": "Software Engineer"
},
{
"name": "Zaphod",
"occupation": "Galactic President"
}
]
}
Aber ich erhalte eine Fehlermeldung: Fehler: json_array_elements auf einem nicht-Array nicht nennen
Ist mein JSON "Array" nicht wirklich ein Array? Ich muss diese JSON-Zeichenkette verwenden, weil sie in einer Datenbank enthalten ist, also müsste ich ihnen sagen, dass sie es reparieren soll, wenn es kein Array ist. Oder gibt es eine andere Möglichkeit, es abzufragen?
Ich lese Dokumentation, aber nichts hat funktioniert, immer Fehler erhalten.
Danke, das hat funktioniert. Ich hatte einige schlechte Daten in anderen Zeilen, also musste ich nur eine "gute" Zeile wählen. Jetzt habe ich noch eine Frage: Wie kann ich zum Beispiel nur den "Beruf" auswählen? Wo du sagst, wählst du. * Ich will nur den "Beruf". Ich versuchte t.my_json -> 'Beruf' und es hat nicht funktioniert. Die Ergebnisse zeigen die Spalte? und null Daten, die in meiner Zeile nicht null sind. –
Siehe die aktualisierte Antwort. – klin
Du bist super B-) –