Node-redのJSonataの事例2 〜条件分岐する検索内容とデフォルト値〜

Node-redのJSonataの事例2 〜条件分岐する検索内容とデフォルト値〜:

前回記事:
https://qiita.com/kouichirou/items/5622dcb14ab22441fe27


第二弾です。

とりあえず細かいことはさておき、今度は

・リストAから変数1で検索したエントリーのBoolean如何で、リストBの検索内容を変数2の値あるいは固定値に切り替える

・さらに、その結果が何もない場合は、デフォルト値まで用意する

という内容です。


早速コードをば。

( 
$v := function($a, $b , $LIST1 , $LIST2 ){ 
   $LIST1[ key1 = $a ].boolean ? 
   $LIST2[ key2 = $b ].name: 
   $LIST2[ key2 = "*" ].name 
}( 
   $._hoge, 
   $._fuga, 
   $globalContext( "TMP" ), 
   $.member 
 
); 
$v ? $v : "NO_MEMBER_FOUND" 
 
) 
今回は前回の内容に加えて、三項演算子? :とJSonata内部で変数定義をする内容を使ってます。

三項演算子は2箇所で使ってますが、1箇所目で要件1「リストAから変数1で検索したエントリーのBoolean如何で、リストBの検索内容を変数2の値あるいは固定値に切り替える」を実装し、2箇所目で要件の2つ目であるデフォルト値を実装しました。

こういうのをいちいちJavascriptで書かなくて良いので便利ですねぇ。


本家ガイド

変数定義: https://docs.jsonata.org/programming.html#variables

三項演算子: https://docs.jsonata.org/operators.html#--1

今回はシンプルですがこれで終わりです。ありがとうございました。


第三弾(いよいよ最後)

https://qiita.com/kouichirou/items/09a57e6b834648e9b470

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)