Splitノードを使う
ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はSplitノードを見ていきます。その名の通り、とにかくいろいろな値を分割するのが役割です。
確認するサンプルは、「読み込み > サンプル > flows > node-red > sequence > split > 01 - Split message payload」です。
4つのフローから構成されています。順に見ていきます。
特定の文字で文字列を分割する
一番上の段は入力「msg.payload」内の文字列を、指定した文字列(サンプルでは改行\n)で分割します。
実行すると、デバッグパネルに3件のログが出力されます。
一定の文字数ごとに文字列を分割する
続いて2段目のフローでは、入力「msg.payload」内の文字列を、指定した文字数ごとに分割します。
配列を分割する
3段目のフローでは、入力「msg.payload」内の配列を、指定した要素数(サンプルでは1)ごとに分割します。
msg.payloadには文字列を要素に持つJSON配列が指定されています。
これを実行すると、配列の要素ごとにログが出力されます。
オブジェクトを分割する
最後の4段目のフローでは、入力「msg.payload」内のJSONオブジェクトをkey/valueの要素ごとに分割します。加えて、分割後のmsgオブジェクトの「msg.topic」にkeyに相当する文字列を格納します。
msg.payloadにはJSONオブジェクトが設定されています。
これを実行すると、要素ごとにログが出力されます。上述のSplitノードの設定通り「msg.topic」にkeyに相当する文字列が格納されていることと、「msg.payload」にvalueに相当する数値が格納されていることが確認できます。
まとめ
ここまで確認したことをまとめます。
- msg.payloadに設定されている値の形式によって分割条件を指定できる
- 分割条件はいろいろある
- 文字列なら特定文字列や文字数
- 配列なら分割する要素数
- JSONオブジェクトならオブジェクトの要素ごと
コメント
コメントを投稿