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

DataWorks:JSON の解析

最終更新日:Aug 26, 2026

DataWorks のデータ統合における単一テーブルのリアルタイム同期タスクでは、JSON 解析コンポーネントを使用して、ソースからの JSON データを対応するテーブルデータに解析できます。

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

ステップ 1:データ統合タスクの設定

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

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

    説明

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

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

  1. 単一テーブルのリアルタイム同期タスクで、データ処理 スイッチをオンにし、[+ノードの追加] をクリックして、JSON 解析 コンポーネントを選択します。

  2. ノードの名前と説明を入力し、JSON 解析コンポーネントを設定します。

    重要

    JSON データ構造を取得するには、まずデータソース (Kafka など) で データサンプリング を実行します。

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

    • フォーマットされた JSON データの取得

      JSON ソース

      説明

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

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

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

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

      [JSON テキストの編集] ボタンをクリックして編集モードに入ります。 [JSON テキストの編集] ウィンドウで JSON コンテンツを手動で入力し、選択に戻る をクリックしてフィールドを選択します。

      リーフノードの解析

      • JSON 形式のデータ構造 ビューで、PixPin_2026-02-25_17-39-24 アイコンをクリックしてリーフフィールドを選択します。 対応する解析設定が 固定出力フィールド セクションに自動的に追加されます。

      • 以下の例は、JSON のリーフノードを解析してテーブルを生成する方法を示しています。

      JSON オブジェクトの解析

      JSON 形式のデータ構造 ビューで、解析対象のフィールドを選択します。 JSON オブジェクトを選択すると、アドレスフィールドの横にある PixPin_2026-02-25_17-39-24 アイコンをクリックします。 ダイアログボックスが表示され、次の解析オプションを選択できます。

      • JSON オブジェクト内の各キーと値のペアを個別のフィールドとして追加します。このとき、キーがフィールド名、値がフィールド値になります。

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

      • オプション

        解析結果

        [JSON オブジェクト内の各キーと値のペアを個別のフィールドとして追加します。このとき、キーがフィールド名、値がフィールド値になります] を選択します。

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

        [JSON オブジェクト全体を単一のフィールドとして追加します。このとき、値はオブジェクトの JSON 文字列になります] を選択します。

        アドレス全体が単一のデータレコードとして解析され、その値には streetcityzip フィールドが含まれます。

      JSON 配列の解析

      JSON 形式のデータ構造 ビューで、解析対象のフィールドを選択します。 JSON 配列を選択すると、ダイアログボックスが表示され、次の解析オプションを選択できます。

      • 配列を複数行出力として追加します。

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

      オプション

      解析結果

      図の JSON を例として、配列フィールドの横にある PixPin_2026-02-25_17-39-24 アイコンをクリックし、ダイアログボックスで [配列を複数行出力として追加します] を選択します。

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

      説明

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

      図の JSON を例として、配列フィールドの横にある PixPin_2026-02-25_17-39-24 アイコンをクリックし、[配列全体を単一のフィールドとして追加します。このとき、値は配列の JSON 文字列になります] を選択します。

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

      パラメーター

      説明

      フィールド名

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

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

      • $:ルートノードを表します。

      • .:子ノードを表します。

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

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

      説明

      JSON 解析パス内の JSON フィールド名には、英字、数字、ハイフン (-)、アンダースコア (_) のみを使用できます。

      デフォルト値

      アップストリームのテーブルフィールドの変更により JSON 解析パスが存在しない場合のデフォルト値です。

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

      • 塗りつぶしなし:フィールドには値が入力されません。 NULL との違いは、送信先テーブルの対応するフィールドに書き込む際に、そのフィールドにデフォルト値が設定されていれば、NULL ではなくそのデフォルト値が使用される点です。

      • ダーティデータ:レコードは同期タスクのダーティデータ統計にカウントされ、タスクが異常終了するかどうかはダーティデータ許容設定によって決まります。

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

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

    • フォーマットされた JSON コンテンツで、動的解析の対象となる JSON オブジェクトフィールドを選択します。 JSON オブジェクト配下の各フィールドの解析設定が、固定出力フィールドに自動的に追加されます。

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

    • フォーマットされた JSON データの取得

      JSON ソース

      説明

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

      データサンプリングを実行した後、JSON 解析用の動的フィールドを追加 をクリックして [JSON 動的出カフィールド] ダイアログボックスを開きます。 [ソースフィールドの選択] を行い、JSON 形式のデータ構造を取得します をクリックして JSON データ構造を取得します。

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

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

      [JSON テキストの編集] ボタンをクリックして編集モードに入ります。 [JSON テキストの編集] ウィンドウで JSON コンテンツを手動で入力し、選択に戻る をクリックしてフィールドを選択します。

    • JSON オブジェクトの動的解析

      • 設定方法:

        左側の [JSON データ構造] パネルで、対象の JSON オブジェクトフィールド (dynamic など) の横にある選択ボタンをクリックします。 [JSON オブジェクトの指定] 設定が右側の [動的出カフィールド] セクションに自動的に追加され、[値] には対応するパス ($.dynamic など) が自動的に入力され、[デフォルト値][無視] に設定されます。

      • 動的フィールドに c3 が追加されたと仮定します。 変更前後の解析結果は次のとおりです。

        _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 解析 コンポーネントを設定した後、データ出力プレビュー をクリックして、現在のノードの出力データが要件を満たしているかどうかを確認します。