JSON変換

JSON変換

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

JSON変換ステートでは、さまざまなファイル形式のデータをJSONに変換し、サーキット内でさらに処理できます。

利用可能なステート。

  • JSONからJSONへの変換

  • CSVからJSONへの変換

  • XMLからJSONへの変換

  • YAMLからJSONへの変換

  • XLSXからJSONへの変換

  • TXTからJSONへの変換

設定と共通項目  

次の設定項目とペイロード項目は、すべてのJSON変換ステートで共通です。これらに加えて、各ステートにはそれぞれのセクションで説明する固有の項目が含まれる場合があります。
  1. サーキットの右ペインに移動します。
  2. データ変換]を選択し、[JSON変換]を選択します。
  3. JSON変換カテゴリーで必要なステートを選択します。
  4. 選択したステートをサーキットにドラッグ&ドロップします。
  5. 設定]で、次の操作を行います。
    1. [種類]はデフォルトでタスクに設定されています。
    2. [タスクID]は選択したステートに基づいてあらかじめ選択され、ドロップダウンから変更できます。
  6. 次の共通項目を使用して、必要に応じてペイロードを設定します。
    1. [QntrlファイルID]– QntrlファイルタブにアップロードされたファイルのIDです。
    2. [インデックス]– 処理するデータの開始インデックスです。
    3. [範囲]– 開始インデックスから処理するデータの件数です。
    4. [エンコード形式]– ファイルのエンコード形式です。指定しない場合、デフォルトはUTF-8です。エンコードが正しくないと、ファイルを読み取れない場合があります。
  7. 必要に応じて、エラー処理を設定します。
  8. [入力パス][出力パス][結果パス][結果セレクター]を設定するには、[設定]タブの横にある[入力/出力]をクリックします。詳細については、入力/出力処理を参照してください。
      

JSONからJSONへの変換

JSONデータを別のJSON構造に変換します。Functionステートを使用する代わりに、このステートではスクリプトを使用してインラインでJSONを変換できます。
対応しているスクリプトの種類
  • JSONata:フィルタリング、集計、計算に使用できる組み込み関数を備えた、強力なJSONクエリー/変換言語です。高度なクエリー、簡潔な式、複雑またはアドホックなデータ操作に適しています。
  • JSLT:入力から出力への明確なマッピングと形式変換を目的とした、構造化されたJSON変換言語です。テンプレートベースの変換や、制御された構造変更に最適です。
ビルダー表示の追加プロパティ
  • [データ]:静的または動的な入力JSONです。

  • [QntrlファイルID]:インラインデータの代わりに、ファイルベースのJSON入力を指定します(任意)。

  • [スクリプトの種類]:ドロップダウンからJSONataまたはJSLT を選択します。

  • [スクリプト]:変換ロジックを記述します

  • [変数]:スクリプト内で参照する変数を定義します

コード表示
JSONata
{
  'Json 2 Json Converter': {
      'start': true,
      'タブ': 'json_conversion',
      'task_id': 'json_to_json',
      'payload': {
  'qntrl_file_id': '{file_id}',
  'script_type': 'JSONata',
  'script': 'Account.Order.Product'
      },
      'next': 'End'
 }
}

 

JSLT

{

'Json 2 Json Converter': {

'start': true,

'タブ': 'json_conversion',

'task_id': 'json_to_json',

'payload': {

      'qntrl_file_id': '{file_id}',

'script_type': 'Jslt',

'script': {

'user': {

'name': 'upper-case(.name)',

'age': '.age',

'location': '.city',

'isAdult': '.age >= 18'

}

}

},

'next': 'End'

}

}

 

変数を使用したJSONata

{
'Json 2 Json Converter': {
      'start':true,
      'タブ': 'json_conversion',
      'task_id': 'json_to_json',
      'payload': {
'variables': {
     'greeting': 'Hello'
},
'data': {
    'name': 'Alice'
},
'script_type': 'JSONata',
  'script': '$greeting & ', ' & name'
}
'next': 'End'
},
} 

  

CSVからJSONへの変換    

CSVファイルをJSONに変換します。カスタム区切り文字、ヘッダー、引用符文字、null値の処理に対応しています。

ビルダー表示の追加プロパティ
  • [ヘッダーあり]:先頭行に列ヘッダーが含まれている場合に有効にします。有効にすると、先頭行が列名として使用されます。無効にすると、列にはcolumn1、column2などの名前が自動で付けられます。
  • [ヘッダー]:ヘッダーあり]が無効の場合に、列名を手動で定義します。

  • [区切り文字]:値を区切るために使用する文字(例:コンマ、セミコロン)

  • [引用符文字]:特殊文字を含む項目を引用符で囲み、分割されないようにするために使用する文字。

  • [エスケープ文字]:項目内の引用符文字をエスケープするために使用する文字。

  • [NA値]:欠損値(NaN)として扱う文字列。

  • [Nullの代替値]:認識されたNaN値の置換値。

 

ヘッダーを手動で定義する場合(つまり、[ヘッダーあり]が無効の場合)、各列のエントリーでは次のキーを使用できます。

  • name: JSON出力で割り当てる列名。

  • type: 列のデータ型(例:stringnumberdatetime)。

  • input: 元のCSVの日付値の形式とタイムゾーンを指定します。

  • output: JSON出力の日付値に使用する形式とロケールを指定します。

コード表示

{

'New State 1': {

'type': 'task',

'タブ': 'json_conversion',

'task_id': 'csv_to_json',

'payload': {

'qntrl_file_id': '{file_id}',

'has_header': false,

'delimiter': ',',

'quote_char': '\'',

'headers': [

{

'name': 'EmployeeID',

'type': 'number'

},

{

'name': 'DOB',

'type': 'datetime',

'input': {

'format': 'yyyy-MM-dd HH:mm:ss',

'zone': 'UTC'

},

'output': {

'format': 'yyyy-MMMM-dd HH:mm:ss',

'locale': 'fr'

}


          }

]

},

'end': true

}

}

 

XMLからJSONへの変換 

XMLファイルを対応するJSON形式に変換します。共通のペイロード項目のみが適用され、追加の設定は不要です。
コードビュー
{
'XML Json Converter': {
'start':true,
'タブ': 'json_conversion',
'task_id': 'xml_to_json',
'payload': {
'qntrl_file_id': {file_id},
'range':5
},
'next': 'End'
},
}

 

YAMLからJSONへの変換 

YAMLファイルをJSON形式に変換します。複雑なYAML構造を安全に処理できるよう、エイリアス数の制限に対応しています。

ビルダー表示の追加プロパティ
  • [最大エイリアス数]:許可するYAMLエイリアス(参照)の最大数を指定します。YAMLでは、アンカー(&)とエイリアスを使用して、繰り返し値を参照できます。
 
コード表示
{
'YAML Json Converter': {
      'start': true,
'タブ': 'json_conversion',
'task_id': 'yaml_to_json',
'payload': {
'qntrl_file_id': '{file_id}',
'max_aliases': 10
},
'next': 'End'
}
}

 

XLSXからJSONへの変換 

ExcelファイルのスプレッドシートデータをJSONに変換します。シートの選択と柔軟なヘッダー設定に対応しています。

ビルダー表示の追加プロパティ
  • [シートインデックス]:処理するシートのインデックスです。

  • [シート名]:処理するシートの名前です。

  • [ヘッダーあり]:最初の行に列ヘッダーが含まれるかどうかを示します。

  • [ヘッダーインデックス]:ヘッダー行として使用する行インデックス   

ヘッダーの動作。  

    • has_header = trueの場合、最初の行が列名として扱われます。

    • has_header = falseの場合、列はcolumn1column2などとして自動生成されます。

    • ヘッダーがない場合は、列名を手動で定義できます。

コード表示

{
'XLSX Json Converter': {
'start': true,
'タブ': 'json_conversion',
'task_id': 'xlsx_to_json',
'payload': {
'qntrl_file_id': '{file_id}',
'has_header': true,
'headers': [
{
'name': 'person',
'type': 'string'
},
{
'name': 'age',
'type': 'number'
},
{
'name': 'DOB',
'type': 'datetime',
'input': {
'format': 'yyyy-MM-dd HH:mm:ss',
'zone': 'UTC'
},
'output': {
'format': 'yyyy-MMMM-dd HH:mm:ss',
'locale': 'fr'
}
}
]
},
'next': 'End'
}
}

TXTからJSONへの変換 

構造化テキストファイルをJSONに変換します。テキストファイルの構造に応じて、3つの解析方法に対応しています。

ビルダー表示の追加プロパティ

  • [区切り文字]区切り文字ベースの解析で値を分割するために使用する文字です(例:,|>)。

  • [ヘッダーあり]:最初の行に列ヘッダーが含まれる場合は、このオプションを有効にします。有効にすると、最初の行が列名として扱われます。

  • [列][ヘッダーあり]が無効の場合は、列名、データ型、解析ルールを指定して列を手動で定義します。

  • [解析方法]  

  • 区切り文字ベースの解析:テキストファイル内の値が、,|、または>などの一定の文字で区切られている場合に使用します。

  • インデックスベース(固定幅)の解析:各項目が指定された文字位置を占める固定長テキストファイルに使用します。列の境界を定義するには、開始位置と終了位置を指定します。正規表現ベースの解析。

  • パターン照合を使用して項目を識別する非構造化または半構造化テキストファイル(ログファイルなど)に使用します。区切り文字ベースの解析と固定幅解析は同時には使用できません。


Notes
コード表示

 

i)インデックスベース変換

-> 入力

John Doe 35   

Jane Smith 28
Bob Johnson 42
-> 設定

{

'TXT Json Converter': {
'start': true,
'タブ': 'json_conversion',
'task_id': 'txt_to_json',
'payload': {
'qntrl_file_id': '{file_id}',
'has_header': false,
'columns': [
{
'name': 'firstName',
'start': 0,
'end': 19,
'type': 'string'
},
{
'name': 'lastName',
'start': 20,
'end': 39,
'type': 'string'
},
{
'name': 'age',
'start': 40,
'end': 42,
'type': 'number'
}
]
}
}
}
-> Response

 

[

{ 'firstName': 'John', 'lastName': 'Doe', 'age': 35 },
{ 'firstName': 'Jane', 'lastName': 'Smith', 'age': 28 },
{ 'firstName': 'Bob', 'lastName': 'Johnson', 'age': 42 }
]
ii) Regex Based Transformation

 

→入力

2025-07-29 10:00:00 INFO ユーザーがログインしました  

2025-07-29 10:05:00 ERROR リソースの読み込みに失敗しました
2025-07-29 10:10:00 INFO ユーザーがログアウトしました
→設定

{

 'TXT Json Converter': {
'start': true,
'タブ': 'json_conversion',
'task_id': 'txt_to_json',
'payload': {
'qntrl_file_id': '{file_id}',
'has_header': false,
'columns': [
{
'name': 'date',
'regex': '^\\d{4}-\\d{2}-\\d{2}',
'type': 'date'
},
{
'name': 'time',
'regex': '\\d{2}:\\d{2}:\\d{2}',
'type': 'time',
'format': 'HH:mm:ss'
},
{
'name': 'level',
'regex': '(INFO|ERROR|WARN)',
'type': 'string'
},
{
'name': 'message',
'regex': '(INFO|ERROR|WARN) (.*)$',
'type': 'string'
}
]
}
}
}
}

 

→レスポンス

[
{
'date': '2025-07-29',
'time': '10:00:00',
'level': 'INFO',
'message': 'User logged in'
},
{
'date': '2025-07-29',
'time': '10:05:00',
'level': 'ERROR',
'message': 'Failed to load resource'
},
{
'date': '2025-07-29',
'time': '10:10:00',
'level': 'INFO',
'message': 'User logged out'
}
]

 

iii)区切り文字に基づく変換  

→入力  

John | Doe | true | 1985-12-15
Jane | Smith | false | 1990-05-10
Bob | Johnson | true | 1978-03-22

→設定

{
'TXT Json Converter': {
'start': true,
'タブ': 'json_conversion',
'task_id': 'txt_to_json',
'payload': {
'qntrl_file_id': '{file_id}',
'has_header': false,
'delimiter': '|',
'columns': [
{
'name': 'firstName',
'type': 'string'
},
{
'name': 'lastName',
'type': 'string'
},
{
'name': 'isActive',
'type': 'boolean'
},
{
'name': 'birthDate',
'type': 'date'
}
]
}
}
}

→レスポンス

[
{
'firstName': 'John',
'lastName': 'Doe',
'isActive': true,
'birthDate': '1985-12-15'
},
{
'firstName': 'Jane',
'lastName': 'Smith',
'isActive': false,
'birthDate': '1990-05-10'
},
{
'firstName': 'Bob',
'lastName': 'Johnson',
'isActive': true,
'birthDate': '1978-03-22'
}
]


    • Related Articles

    • データ変換ステータスのトラブルシューティングFAQ

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 1. 関数ステートではなくデータ変換ステートを使用するタイミング 必要なロジックをJSONata、JSLT、データセット操作などの組み込み機能で実現できる場合は、データ変換ステートを使用します。カスタムスクリプトを避けられ、保守性が向上し、サーキットをより整理された状態に保てます。 ...
    • Circuitの状態の概要

      お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。 ステートは、タスクの実行、判断、またはあるステートから別のステートへの出力の受け渡しを行うサーキットの構成要素です。ステートは、サーキットのその区間で実行する必要がある特定のタスクやプロセスを定義します。 サーキットのステートは次のように分類されます。 フロー制御 機能 通知 ...