PostgreSQL で JSON 形式のフィールドを解析する方法は何ですか?
PostgreSQLでは、JSON形式のフィールドを解析するために、json_to_recordまたはjson_to_recordset関数を使用することができます。
data という名前のJSONフィールドがあると仮定すると、次の内容が含まれています。
{
"name": "John",
"age": 30,
"address": {
"city": "New York",
"state": "NY"
}
}
そのフィールドを解析するために、以下のクエリを使用できます。
SELECT json_to_record(data) AS (name text, age int, address json)
FROM your_table;
上記のクエリは、解析されたフィールドが含まれた結果セットを返します。
JSONフィールドが配列であり、複数の行に解析したい場合は、json_to_recordset関数を使用できます。例えば、dataというフィールドが以下の内容を含んでいるとします。
[
{
"name": "John",
"age": 30
},
{
"name": "Jane",
"age": 25
}
]
このフィールドを解析するために、以下のクエリを使用することができます:
SELECT *
FROM json_to_recordset(data) AS (name text, age int);
上記のクエリは、2行を返します。各行には解析されたJSONオブジェクトのフィールドが含まれています。
PostgreSQLでjsonまたはjsonbデータ型のサポートと関連するJSON関数および演算子を有効にする必要があります。これらが利用可能であることを確認するには、以下のコマンドを実行できます。
CREATE EXTENSION IF NOT EXISTS "json";
CREATE EXTENSION IF NOT EXISTS "jsonb";
これらの指示は、必要な拡張機能をあなたのデータベースに作成します。