2.8.11 「フォーマット変換」 を利用する

本チュートリアルでは、 IoT Connect Gateway の 「フォーマット変換」 機能に関する設定についてご説明いたします。

フォーマット変換

  1. 左側のメニューから 「フォーマット変換」 >「一覧」をクリックします。
  2. 「新規作成」 をクリックします。
フォーマット変換新規作成
  1. フォーマット変換 情報を入力します。
フォーマット変換設定1
  • テンプレート名(必須)

    テンプレート名を入力します。任意の分かりやすい名称をご入力ください。

  • 変換元形式(必須)

    CSV,JSONからの選択となります。

  • 説明

    任意項目です。用途に応じて分かりやすい内容をご入力ください。

  • 内容(必須)

    ここで設定ファイルの内容を記載します。Jinja2形式での記述となります。

    必要な情報の設定が終わりましたら、「作成」をクリックします。

  1. 「戻る」をクリックします。
フォーマット変換設定2
  1. 作成した フォーマット変換 のテンプレートが表示されていることを確認します。
フォーマット変換設定3
  1. 左側のメニューから「グループ」をクリックし、グループの一覧を表示させ、フォーマット変換を適用したいグループ名のリンクをクリックします。グループ一覧が表示されていない場合は、 こちら のグループ情報登録を参照し、グループを作成してください。
グループ選択
  1. 「スタンダード」、「イベント」、 「ファンクション」 から、 フォーマット変換 を適用したいサービスのタブをクリックし、「鉛筆」アイコンをクリックします。
フォーマット変換適用1
  1. フォーマット変換テンプレートから作成した任意のテンプレートを選択して「保存」をクリックします。
フォーマット変換適用2
  1. 左側のメニューから 「フォーマット変換」 >「一覧」をクリックし、「詳細」アイコンをクリックします。
フォーマット変換適用3
  1. 適用中転送先設定にフォーマット変換を適用したグループ名と転送先設定名が表示されていることを確認します。
フォーマット変換適用4

注釈

  • 対応プロトコルはHTTP、MQTT、TCPになります。
  • 変換元形式をCSVに指定した場合、curlコマンドでリクエストを送信する際は、--data-binaryのオプションを指定して下さい。
  • フォーマット変換のご利用データ確認は こちら をご参照ください。

フォーマット変換 テンプレートの考え方

1. 変換元形式がCSVの場合

送信データ例1

・CSVファイル内の区切り文字はコンマ(,)を指定します。

10,20,100,200

テンプレート内容例1

・テンプレート内容のプリフィックスは環境変数で設定し、csv_data+配列番号の形で指定します。

{{csv_data0}},{{csv_data1}},{{csv_data2}},{{csv_data3}}

送信データ例2

10,20
100,200

テンプレート内容例2

・CSVファイルの内容が複数行の場合もテンプレート内で指定可能です。

{{csv_data0_0}},{{csv_data0_1}},{{csv_data1_0}},{{csv_data1_1}}

2. 変換元形式がJSONの場合

送信データ(JSON)例

{
"a" : 10,
"b" : {
    "x" : 100
    }
}

テンプレート内容例

・プリフィックスは環境変数で設定し、json_data+["文字列"]の形で指定します。

・ネストされたJSONデータの場合もテンプレート内で指定可能です。

    {
"a" : {{ json_data["a"] }},
"b" : {
    "x" : {{ json_data["b"]["x"] }}
    }
}

フォーマット変換 利用例

1. CSVからJSONに変換

送信データ(CSV)が下記の場合、

10,25
100,200

テンプレート内容を下記のように設定します。

{
"degree" : {{csv_data0_0}},
"humidity" : {{csv_data0_1}},
"position" : {
    "x" : {{csv_data1_0}},
    "y" : {{csv_data1_1}}
    }
}

フォーマット変換後の結果が下記になります。

{
"degree" : 10,
"humidity" : 25,
"position" : {
    "x" : 100,
    "y" : 200
    }
}

2. JSONからCSVに変換

送信データ(JSON)が下記の場合、

{
"degree" : 10,
"humidity" : 25,
"position" : {
    "x" : 100,
    "y" : 200
    }
}

テンプレート内容を下記のように設定します。

Temperature {{ json_data["degree"] }}, Humidity {{ json_data["humidity"] }}, Position X {{ json_data["position"]["x"] }}, Position Y {{ json_data["position"]["y"] }}

フォーマット変換後の結果が下記になります。

Temperature 10, Humidity 25, Position X 100, Position Y 200

3. JSONからJSONに変換

送信データ(JSON)が下記の場合、

{
"a" : 10,
"b" : 25,
"c" : {
    "x" : 100,
    "y" : 200
    }
}

テンプレート内容を下記のように設定します。

{
"degree" : {{ json_data["a"] }},
"humidity" : {{ json_data["b"] }},
"position" : {
    "width" : {{ json_data["c"]["x"] }},
    "length" : {{ json_data["c"]["y"] }}
    }
}

フォーマット変換後の結果が下記になります。

{
"degree" : 10,
"humidity" : 25,
"position" : {
    "width" : 100,
    "length" : 200
    }
}

フォーマット変換 テスト機能

  1. 左側のメニューから 「フォーマット変換」 >「テスト」をクリックします。
フォーマット変換テスト
  1. フォーマット変換 テスト画面が表示されます。
フォーマット変換テスト
  • テンプレート内容(必須)

    テンプレート内容を入力します。

  • 送信データ(必須)

    形式(JSON、CSV)を選択し、送信データを入力します。JSON形式の場合、「整形」をクリックすると自動で整形します。

  • 変換結果

    テンプレート内容、送信データを入力後、「変換」をクリックすると、変換結果が表示されます。

    変換結果は「ファイルに出力」をクリックすると、変換結果を保存できます。