Wie kann ich überprüfen, ob ein json-Schlüssel existiert in Postgres?

Sagen wir, ich habe eine json sieht wie folgt aus:

some_json = {'key_a': {'nested_key': 'a'},
             'key_b': {'nested_key': 'b'}}

Beachten Sie, dass key_a und key_b sind optional Tasten zugeordnet Wörterbücher und möglicherweise oder möglicherweise nicht vorhanden.

Ich habe eine Funktion, die prüft, ob ein äußerer key " existiert in some_json und gibt einen booleschen Wert zurück.

CREATE FUNCTION key_exists(some_json json, outer_key text)
RETURNS boolean AS $$
BEGIN
    RETURN (some_json->outer_key IS NULL);
END;
$$ LANGUAGE plpgsql;

Bekomme ich die folgende Fehlermeldung:

ProgrammingError: operator does not exist: json -> boolean

Warum ist outer_key was eine boolean ist? Was ist die korrekte syntax, um diese überprüfung durchzuführen?

  • Json ist der Typ
InformationsquelleAutor Teboto | 2015-03-07
Schreibe einen Kommentar