すべてのプロダクト
Search
ドキュメントセンター

DataWorks:JSON 解析

最終更新日:Nov 15, 2025

JSON 解析コンポーネントは、DataWorks Data Integration のリアルタイム抽出・変換・書き出し (ETL) タスクで利用できます。ソースと宛先の間に JSON 解析コンポーネントを追加して、ソースからの JSON データをテーブルデータに解析できます。

JSON 解析コンポーネントの作成と構成

ステップ 1: データ統合タスクの構成

  1. データソースを作成します。詳細については、「データソース管理」をご参照ください。

  2. データ統合タスクを作成します。詳細については、「Data Integration でのリアルタイム同期タスクの構成」をご参照ください。

    説明

    データ統合タスクがリアルタイム単一テーブル同期タイプを使用する場合、ソースコンポーネントと宛先コンポーネントの間にデータ処理コンポーネントを追加できます。詳細については、「サポートされているデータソースと同期ソリューション」をご参照ください。

ステップ 2: JSON 解析コンポーネントの追加

  1. リアルタイム ETL タスク構成ページの DAG キャンバスで、ソースコンポーネントとディスティネーションコンポーネントの間にある image ボタンをクリックし、[JSON 解析] コンポーネントを選択します。image

  2. JSON 解析コンポーネントを構成します。

    重要

    JSON データ構造を取得するには、ソース Kafka コンポーネントで [データサンプリング] を実行します。

    JSON 解析用の固定フィールドの追加

    • JSON 形式のデータを取得します。

      JSON データの取得

      説明

      データサンプリングから JSON データを取得

      データサンプリング後、[JSON 解析用の固定フィールドを追加] をクリックします。[JSON 解析用の固定フィールド] ダイアログボックスで、ソースフィールドを選択し、[JSON データ構造を取得] をクリックします。

      image

      手動で入力した JSON データを取得

      データサンプリングが実行されない場合、またはソースデータが空の場合は、フィールドを手動で編集できます。

      [JSON 解析用の固定フィールドを追加] をクリックします。[JSON 解析用の固定フィールド] ダイアログボックスで、[JSON テキストの編集] をクリックします。[JSON テキストの編集] ダイアログボックスで、JSON コンテンツを手動で入力し、[OK] をクリックしてアップロードされた JSON コンテンツをフォーマットします。

      image

      リーフノードの解析

      • [JSON データ構造] セクションで、image をクリックしてリーフフィールドを選択します。対応する解析構成が [固定出力フィールド] セクションに自動的に追加されます。image

      • 次の表に、リーフノードの解析例を示します。

      • image

      JSON オブジェクトの解析

      [JSON データ構造] セクションで、解析するフィールドを選択します。JSON オブジェクトを選択すると、次の解析メソッドを提供するダイアログボックスが表示されます。

      • JSON オブジェクト内の各キーと値のペアを個別のフィールドとして追加します。キーがフィールド名として使用され、キーと値のペアの値がフィールドに割り当てられます。

      • JSON オブジェクト全体を単一のフィールドとして追加します。フィールドの値は、オブジェクトの JSON 文字列です。

      • オプション

        解析結果

        図の JSON データを例として使用します。address フィールドの横にある image アイコンをクリックし、ダイアログボックスで [JSON オブジェクトの各キーと値のペアを個別のフィールドとして追加します。キーはフィールド名として使用され、対応する値が割り当てられます。] を選択します。

        3 つのフィールド (streetcityzip) が解析されます。それぞれにフィールド値が割り当てられます。

        image

        image

        image

        図の JSON データを例として使用します。address フィールドの横にある image アイコンをクリックし、ダイアログボックスで [JSON オブジェクト全体を単一のフィールドとして追加します。値はオブジェクトの JSON 文字列です。] を選択します。

        address オブジェクト全体が単一の完全なデータレコードに解析されます。値には、streetcityzip フィールドが含まれます。

        image

        image

        image

      JSON 配列の解析

      [JSON データ構造] セクションで、解析するフィールドを選択します。JSON 配列を選択すると、次の解析メソッドを提供するダイアログボックスが表示されます。

      • 配列を複数行の出力に展開します。

      • 配列全体を単一のフィールドとして追加します。フィールドの値は、配列の JSON 文字列です。

      オプション

      解析結果

      図の JSON データを例として使用します。array1 フィールドと array2 フィールドの横にある image アイコンをクリックし、ダイアログボックスで [配列を複数行の出力として追加します。] を選択します。

      説明

      配列にキーと値のペアが含まれ、値も配列である場合、ネストされた配列の値は解析されません。

      image

      image

      図の JSON データを例として使用します。array フィールドの横にある image アイコンをクリックし、[配列全体を単一のフィールドとして追加します。値は配列の JSON 文字列です。] を選択します。

      image

      image

      image

    • [フィールドの追加] をクリックしてフィールドを手動で追加します。アップストリームフィールドの値を取得できず、[JSON テキストの編集] ボタンをクリックして JSON コンテンツをアップロードしていない場合は、固定フィールド解析ルールを手動で定義できます。次の表にパラメーターを示します。

      パラメーター

      説明

      フィールド名

      ダウンストリームノードで参照される、新しく解析されたフィールドの名前。

      JSON 解析パスを指定します。解析構文は次のとおりです。

      • $: ルートノード。

      • .: 子ノード。

      • []: [number] は配列インデックスを示します。インデックスは 0 から始まります。

      • [*]: 配列を複数行の出力に展開します。各要素はレコード内の他のフィールドと結合されて個別の行を形成し、ダウンストリームノードに出力されます。

      説明

      JSON 解析パス内の JSON フィールド名には、文字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。

      デフォルト値

      アップストリームテーブルのフィールドが変更されたために値を取得するための JSON パスが存在しない場合に使用するデフォルト値。

      • [NULL]: フィールドに NULL 値が割り当てられます。

      • [入力しない]: フィールドには値が入力されません。NULL の選択との違いは、宛先テーブルの対応するフィールドに書き込むときに、宛先フィールドにデフォルト値が構成されている場合、NULL の代わりにそのデフォルト値が使用されることです。

      • [ダーティデータ]: レコードは同期タスクのダーティデータとしてカウントされます。その後、システムはダーティデータ許容度構成に基づいて、エラーでタスクを停止するかどうかを決定します。

      • [定数を手動で入力]: 手動で入力した定数をフィールド値として使用します。

      image

    JSON 解析用の動的フィールドの追加

    • JSON 形式のデータを取得します。

      JSON データの取得

      説明

      データサンプリングから JSON データを取得

      データサンプリング後、[JSON 解析用の動的フィールドを追加] をクリックします。[JSON 解析用の動的出力フィールド] ダイアログボックスで、ソースフィールドを選択し、[JSON データ構造を取得] をクリックします。

      image

      手動で入力した JSON データを取得

      [JSON 解析用の動的フィールドを追加] をクリックします。[JSON 解析用の動的出力フィールド] ダイアログボックスで、アップストリームフィールドの値を取得できない場合、または値が JSON 仕様に準拠していない場合は、[JSON テキストの編集] をクリックします。[JSON テキストの編集] ダイアログボックスで、JSON コンテンツを手動で入力し、[OK] をクリックしてアップロードされた JSON コンテンツをフォーマットします。

      image

    • JSON オブジェクトを動的に解析します

      • JSON コンテンツで、動的に解析する JSON オブジェクトフィールドを選択します。システムは、JSON オブジェクト内の各フィールドの解析構成を固定出力フィールドに自動的に追加します。

      • JSON オブジェクトの動的解析を構成します。同期タスクの実行中、指定されたパスにある JSON オブジェクトの各フィールドは、元の JSON フィールド名と値を持つ STRING 型としてレコードに追加され、ダウンストリームノードに送信されます。これにより、システムは同期中に新しいフィールドなどの構造変更を自動的に検出して出力できます。

      • 次の図に例を示します。

        オブジェクトが解析される前:

        image

        オブジェクトが解析された後:

        image

      • 次の表に解析結果を示します。

        _value_(STRING)

        c1(STRING)

        c2(STRING)

        c3(STRING)

        {
            "dynamic": {
                "c1": 2,
                "c2": ["a1","b1"]
            }
        }

        2

        ["a1","b1"]

        未入力

        {
            "dynamic": {
                "c1": 2,
                "c2": ["a1","b1"],
                "c3": {"name": "jack"}
            }
        }

        2

        ["a1","b1"]

        {"name": "jack"}

    • フィールドを手動で追加します

      フィールドを手動で追加することもできます。アップストリームの子フィールドの値を取得できず、[JSON テキストの編集] ボタンをクリックして JSON コンテンツをアップロードしていない場合は、その値を編集して動的フィールド解析ルールを手動で定義できます。

      パラメーター

      説明

      JSON オブジェクトの指定

      JSON オブジェクト解析パスを指定します。解析構文は次のとおりです。

      • $: ルートノード。

      • .: 子ノード。

      • []: [number] は配列インデックスを示します。インデックスは 0 から始まります。

      注: JSON 解析パス内の JSON フィールド名には、文字、数字、ハイフン (-)、アンダースコア (_) のみを含めることができます。

      デフォルト値

      指定された JSON 解析パスの解析に失敗した場合、または対応するフィールドが存在しない場合のデフォルトの動作を指定します。

      • 無視: 動的解析は実行されません。

      • ダーティデータ: レコードは同期タスクのダーティデータとしてカウントされます。その後、システムはダーティデータ許容度構成に基づいて、エラーでタスクを停止するかどうかを決定します。

    • 同じ名前の既存のフィールドを処理するためのポリシー。

      動的 JSON フィールドがキーと値のペアによって展開される場合、最初のレイヤーのみが展開されます。展開されたフィールドが既存のフィールドと同じ名前を持つ場合は、競合解決ポリシーを選択する必要があります。使用可能なポリシーは次のとおりです。

      • [上書き]: 既存のフィールドの値を新しいフィールドの値に置き換えます。

      • [破棄]: 既存のフィールドの値を保持し、新しいフィールドの値を破棄します。

      • [エラー]: タスクはエラーを報告して実行を停止します。

その他の操作

[ソース][JSON 解析]、および [宛先] の設定を構成した後、右上隅にある [シミュレーションの実行] をクリックしてデータ統合タスクをシミュレートします。これにより、出力データが要件を満たしていることを確認できます。