2.8.11 「フォーマット変換」 を利用する¶
本チュートリアルでは、 IoT Connect Gateway の 「フォーマット変換」 機能に関する設定についてご説明いたします。
フォーマット変換¶
- 左側のメニューから 「フォーマット変換」 >「一覧」をクリックします。
- 「新規作成」 をクリックします。
- フォーマット変換 情報を入力します。
- テンプレート名(必須)
テンプレート名を入力します。任意の分かりやすい名称をご入力ください。
- 変換元形式(必須)
CSV,JSONからの選択となります。
- 説明
任意項目です。用途に応じて分かりやすい内容をご入力ください。
- 内容(必須)
ここで設定ファイルの内容を記載します。Jinja2形式での記述となります。
必要な情報の設定が終わりましたら、「作成」をクリックします。
- 「戻る」をクリックします。
- 作成した フォーマット変換 のテンプレートが表示されていることを確認します。
- 左側のメニューから「グループ」をクリックし、グループの一覧を表示させ、フォーマット変換を適用したいグループ名のリンクをクリックします。グループ一覧が表示されていない場合は、 こちら のグループ情報登録を参照し、グループを作成してください。
- 「スタンダード」、「イベント」、 「ファンクション」 から、 フォーマット変換 を適用したいサービスのタブをクリックし、「鉛筆」アイコンをクリックします。
- フォーマット変換テンプレートから作成した任意のテンプレートを選択して「保存」をクリックします。
- 左側のメニューから 「フォーマット変換」 >「一覧」をクリックし、「詳細」アイコンをクリックします。
- 適用中転送先設定にフォーマット変換を適用したグループ名と転送先設定名が表示されていることを確認します。
注釈
- 対応プロトコルは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
}
}
フォーマット変換 テスト機能¶
- 左側のメニューから 「フォーマット変換」 >「テスト」をクリックします。
- フォーマット変換 テスト画面が表示されます。
- テンプレート内容(必須)
テンプレート内容を入力します。
- 送信データ(必須)
形式(JSON、CSV)を選択し、送信データを入力します。JSON形式の場合、「整形」をクリックすると自動で整形します。
- 変換結果
テンプレート内容、送信データを入力後、「変換」をクリックすると、変換結果が表示されます。
変換結果は「ファイルに出力」をクリックすると、変換結果を保存できます。