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";

これらの指示は、必要な拡張機能をあなたのデータベースに作成します。

bannerAds