Splitノードを使う

 ここのところずっとNode-REDのサンプルを見ながら各ノードの使い方を確認しています。頭出しの記事はこちらをご確認ください。今回はSplitノードを見ていきます。その名の通り、とにかくいろいろな値を分割するのが役割です。

確認するサンプルは、「読み込み > サンプル > flows > node-red > sequence > split > 01 - Split message payload」です。


4つのフローから構成されています。順に見ていきます。

特定の文字で文字列を分割する

一番上の段は入力「msg.payload」内の文字列を、指定した文字列(サンプルでは改行\n)で分割します。


msg.payloadには改行(\n)で区切られた文字列が指定されています。


実行すると、デバッグパネルに3件のログが出力されます。


一定の文字数ごとに文字列を分割する

続いて2段目のフローでは、入力「msg.payload」内の文字列を、指定した文字数ごとに分割します。


msg.payloadには先ほどと同じく改行(\n)で区切られた文字列が指定されています。これを実行すると、改行コード含め4文字ごとに分割されてログが出力されます。


配列を分割する

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オブジェクトならオブジェクトの要素ごと

コメント

このブログの人気の投稿

Joinノードを使う(その1)

Execノードを使う

Joinノードを使う(その4)