PostgreSQL jsonデータからkeyのみを取得する
- 作成日 2025.02.04
- PostgreSQL
- PostgreSQL

PostgreSQLで、jsonデータからkeyのみを取得する手順を記述してます。「json_object_keys」を使用することで可能です。
環境
- OS CentOS Stream release 9
- PostgreSQL 15.1
- pgadmin4 6.16
keyのみを取得
keyのみを取得するには、「json_object_keys」を使用します。
※「josnb型」には「jsonb_object_keys」を使用します。
json_object_keys(jsonデータ);
jsonb_object_keys(jsonbデータ);
実際に、実行してみます。
SELECT
json_object_keys('{"1":"aaa", "2":"bbb", "3":"ccc"}'),
jsonb_object_keys('{"1":"aaa", "2":"bbb", "3":"ccc"}');
実行結果をみると取得されていることが確認できます。

型の違う「jsonb」に「json_object_keys」を使用するとエラーとなります。
実際に、以下のテーブルの「jsonb」型の「jsonb_data」に実行してみます。

エラーとなることが確認できます。
SELECT
json_object_keys(jsonb_data)
from json_test;
ERROR: 関数json_object_keys(jsonb)は存在しません
LINE 2: json_object_keys(jsonb_data)
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 9
実行結果

空を指定
引数を空にすると、エラーが発生します。
SELECT
json_object_keys()
from json_test;
ERROR: 関数json_object_keys()は存在しません
LINE 2: json_object_keys()
^
HINT: 指定した名前と引数型に合致する関数がありません。明示的な型変換が必要かもしれません。
SQL 状態: 42883
文字: 9
実行結果

-
前の記事
java 範囲を指定して配列をコピーする 2025.02.04
-
次の記事
TypeError: Cannot destructure property ‘X’ of ‘undefined’の解決方法 2025.02.04
コメントを書く