コンテンツにスキップ

4.5 デシリアライザ

ここでは、各デシリアライザコンポーネントについて説明します。

4.5.1 JSONデシリアライザ#

JSONの指定データを出力するコンポーネントです。
入力ポートからJSONファイルを受け取り、JSONPathで指定された値を出力します。

4.5.1.1 基本情報#

JSONデシリアライザの基本情報は、次の通りです。

項目 説明
ベース名 JSON
説明 コンポーネントのJSONファイルを受け取ってデータに加工し、他のコンポーネントに渡します。
消費ポイント 0
ポート 入力:1
他のコンポーネントからJSONファイルを受け取ります。

出力:1
入力したJSONファイルを加工したデータを出力します。

システム:1
コンポーネントの稼働状況やエラー情報を出力します。出力するエラー情報の詳細は、「エラーコード一覧」をご覧ください。

4.5.1.2 設定項目#

JSONデシリアライザの設定項目は、次の通りです。

項目 説明
名称 コンポーネントに付与する名前
※他のコンポーネント名と重複する事はできません。
自動起動無効 コンポーネントの自動起動を無効にする場合ON
NULL値 nullを受信した場合の出力を選択

スキップ:値を登録せずスキップ
デフォルト値:データ型毎のデフォルト値として扱う
  • 真偽値:false
  • 符号あり整数:0
  • 符号なし整数:0
  • 浮動小数:0.0

※文字列は常にスキップ
  • JSONデシリアライザの加工データは、次の設定項目によって定義されます。
項目 説明
パターン JSONPathを入力
データ名 データの名前を入力
データ型 出力する値のデータ型を選択
集約 パターンに複数件マッチした場合に出力する値を選択

先頭:最初にマッチしたデータを出力
末尾:最後にマッチしたデータを出力
合計:マッチしたデータの合計値を出力
平均:マッチしたデータの平均値を出力
最大:マッチしたデータの最大値を出力
最小:マッチしたデータの最小値を出力
連結:マッチしたデータを連結して出力(文字列のみ)

パターンの入力例

JSON

{
  "items": [
    { "id": 1, "value": 1 },
    { "id": 2, "value": 2 },
    { "id": 3, "value": 3 },
    {
      "id": 4,
      "sub_items": [
        { "id": 41, "value": 41 },
        { "id": 42, "value": 42 }
      ]
    }
  ]
}
パターン マッチ結果 集約 出力結果
$..value [1, 2, 3, 41, 42] 末尾 42
$.items[1].value 2 末尾 2
$..[?(@.id>=3)].value [3, 41, 42] 末尾 42
$["items"][*]["sub_items"]..value [41, 42] 先頭 41

データ順

パターンのマッチ結果が複数件の場合、マッチする順序は辞書順になります。

JSON

{
  "b": {
    "a": "$['b']['a']"
  },
  "d": [
    {
      "a": "$['d'][0]['a']"
    },
    {
      "b": {
        "a": "$['d'][1]['b']['a']"
      }
    }
  ],
  "a": "$['a']",
  "c": [
    {
      "b": {
        "a": "$['c'][0]['b']['a']"
      },
      "a": "$['c'][0]['a']"
    },
    {
      "a": "$['c'][1]['a']",
      "b": {
        "a": "$['c'][1]['b']['a']"
      }
    }
  ]
}

パターン: $..a

マッチ順

  1. $['a']
  2. $['b']['a']
  3. $['c'][0]['a']
  4. $['c'][0]['b']['a']
  5. $['c'][1]['a']
  6. $['c'][1]['b']['a']
  7. $['d'][0]['a']
  8. $['d'][1]['b']['a']

集約が「末尾」の場合は$['d'][1]['b']['a']が登録され、「先頭」の場合は$['a']が登録されます。