Node-redのJSonataの事例2 〜条件分岐する検索内容とデフォルト値〜
Node-redのJSonataの事例2 〜条件分岐する検索内容とデフォルト値〜:
前回記事:
https://qiita.com/kouichirou/items/5622dcb14ab22441fe27
とりあえず細かいことはさておき、今度は
・リストAから変数1で検索したエントリーのBoolean如何で、リストBの検索内容を変数2の値あるいは固定値に切り替える
・さらに、その結果が何もない場合は、デフォルト値まで用意する
という内容です。
今回は前回の内容に加えて、三項演算子
三項演算子は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
前回記事:
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
今回はシンプルですがこれで終わりです。ありがとうございました。
コメント
コメントを投稿