Sortノードを使う(その2)
ここのところずっと Node-RED のサンプルを見ながら各ノードの使い方を確認しています。 頭出しの記事はこちら をご確認ください。今回はSortノードシリーズの2回目です。 確認するサンプルは、前回に引き続き「 読み込み > サンプル > flows > node-red > sequence > sort > 01 - Sort array payload 」です。 シンプルなJSONata式でJSON配列をソートする 確認するのは5段目です。 入力データを生成するTemplateノードでは、name(文字列)とprice(数値)をプロパティに持つJSON配列を指定しています。 SortノードではJSONata式でキー「price」で昇順ソートするよう指定してあります。 実行すると、以下のログが出力されます。msg.payload.priceの値で昇順ソートされていますね。特に説明の必要はないと思います。 複数のプロパティを条件に組み込んでソートする 最後は6段目です。先ほどより少し複雑なJSONata式を利用して複数プロパティの値を条件に組み込んでソートします。 入力データを生成しているTemplateノードでは、先程と同様JSON配列を指定していますが、今度は複数の要素で同じ値のpriceを持っています。このサンプルではnameの値も考慮に入れてソートを行っています。 Sortノードを開くと、キーに何やら長ったらしいJSONata式が設定されています。このままだと見づらいので、右側の「...」ボタンを選択します。 SONata式の全体像が確認できます。この内容を言葉で表現すると以下のようになります。 priceの値を4桁のゼロ埋めした文字列を生成して、nameの値と文字列結合する 「 テスト 」タブを選択して、「 メッセージ例 」に name と price プロパティを持つJSONオブジェクトを指定すると、「 結果 」欄でこの式の動作を確認できます。この文字列でソートを実行します。 結果は以下の通り、priceの値が同じ場合、nameの値でソートされました。 まとめ まとめます。 ソート条件にJSONata式を利用すると複雑な動作を実現できる Sortノードシリーズはまだまだ続きます。