Wie überprüfe ich, ob ein JSON-Schlüssel in Postgres existiert?

7

Nehmen wir an, ich habe einen JSON, der so aussieht:

%Vor%

Beachten Sie, dass key_a und key_b optionale Schlüssel sind, die den Wörterbüchern zugeordnet sind und möglicherweise nicht existieren.

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

%Vor%

Ich erhalte den folgenden Fehler:

%Vor%

Warum entspricht outer_key einem booleschen Wert? Was ist die richtige Syntax, um diese Prüfung durchzuführen?

    
Teboto 07.03.2015, 23:35
quelle

2 Antworten

12

Ihre Funktion hat genau das Gegenteil von dem, was der Name ist, aber die Art, wie Sie Ihre Funktion reparieren können, besteht darin, ( und ) um some_json->outer_key hinzuzufügen.

Hier funktioniert es und stimmt mit dem Namen Ihrer Funktion überein (beachten Sie NOT vor NULL ).

%Vor%

Einige Tests:

%Vor%

Und hier, wenn ein Schlüssel nicht existiert:

%Vor%     
X-Istence 08.03.2015, 00:36
quelle
15

Sie können auch das '?' Betreiber so:

%Vor%

Und wenn Sie nach verschachtelten Schlüssel abfragen müssen, verwenden Sie das wie folgt:

%Vor%

Siehe Ссылка

HINWEIS : Nur für jsonb type.

    
DaL 10.11.2015 13:34
quelle

Tags und Links