Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Node-red+JSONataで
function地獄からの卒業
きみも JSONataが つかえるフレンズ になろうよ!
はらだ かずひろ
自己紹介
• 原田一弘(はらだ かずひろ)
• 株式会社ウフルに2016年新卒入社
• 社会学部出身(ジブリ映画で卒論かきました)
• 社会人1年目は、マイコン書いたり、はんだづけした
り、LoRaWAN触らせていただいたり、BLEとにら
めっ...
簡単なfunctionを書きがち
JSONata?
• Version 0.16 released 11 January 2017
• ChangeノードとSwitchノードに追加
• Functionを使わなくても簡単なmsg整形が可能になった
結構下の方にあった
dataだけを配列として
取り出したい。。。
なにこれ すごーい
こんなダミーデータを用意。
JSONオブジェクトからの様々な
参照方法を紹介(*’ω’*)
index指定で持ってこれる!
msg.payload.Address.Street & ‘ , ’ & msg.payload.Address.City
じゃなくていい!
*指定も可能!
他階層のtype
(;つД⊂)ゴシゴシ
JSONata Functions について
• 選ぶ!insertを押す!引数を設定でおしまい!
• functionsのリストから選べるものが実装済み。
こんなデータからkeyだけ抜き出したい。。
change nodeで使えそうなfunctions
• $keys(object)
オブジェクトのkeyを抜き出し
• $spread(object)
オブジェクトをkeyとvalueを一つの要素にした配列を生成
• $lookup(obje...
switch nodeで使えそうなfunctions
• $exist(arg)
• 引数が存在するかをt/fで返す。
• $Boolean(arg)
• いろいろt/f判定ができる→
• $count(array)
• 配列の要素数を返す
•...
高度なfunctions
• 右記二つは説明がないがnode-redで実装済み
• 今回mapは使えることを確認した
諸注意
• 公式のJSONataリファレンスのものがすべて使えるわけではな
い。
• $trimなどnode-redで実装されていないfunctionもある
• functionsの選択リストにあるものは使える
• Operatorsも非対応な...
参考にしたとこ
• 公式サイト:http://jsonata.org/
• github https://github.com/jsonata-js/jsonata
• npm https://www.npmjs.com/package/jso...
JSONataを適度に使いこなして
作業効率あげれるフレンズになろう!
special thanks いらすとや
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
Upcoming SlideShare
Loading in …5
×

Node-red+JSONataでfunction地獄からの卒業

Node-RED UG勉強会 Vol.4 「Node-RED x つかってみた!」にて登壇いたしました。
https://node-red.connpass.com/event/51105/

Node-redにて追加されたJSONataのすばらしさについて
npmでインストールすることも可能です。

  • Login to see the comments

Node-red+JSONataでfunction地獄からの卒業

  1. 1. Node-red+JSONataで function地獄からの卒業 きみも JSONataが つかえるフレンズ になろうよ! はらだ かずひろ
  2. 2. 自己紹介 • 原田一弘(はらだ かずひろ) • 株式会社ウフルに2016年新卒入社 • 社会学部出身(ジブリ映画で卒論かきました) • 社会人1年目は、マイコン書いたり、はんだづけした り、LoRaWAN触らせていただいたり、BLEとにら めっこしたり。。 • 曰くNative Node-redderらしい • 最近はNintendo Switchとアイドルにお熱 • そろそろビジネス用のtwitter垢をつくります。。
  3. 3. 簡単なfunctionを書きがち
  4. 4. JSONata? • Version 0.16 released 11 January 2017 • ChangeノードとSwitchノードに追加 • Functionを使わなくても簡単なmsg整形が可能になった 結構下の方にあった
  5. 5. dataだけを配列として 取り出したい。。。
  6. 6. なにこれ すごーい
  7. 7. こんなダミーデータを用意。 JSONオブジェクトからの様々な 参照方法を紹介(*’ω’*)
  8. 8. index指定で持ってこれる!
  9. 9. msg.payload.Address.Street & ‘ , ’ & msg.payload.Address.City じゃなくていい!
  10. 10. *指定も可能! 他階層のtype
  11. 11. (;つД⊂)ゴシゴシ
  12. 12. JSONata Functions について • 選ぶ!insertを押す!引数を設定でおしまい! • functionsのリストから選べるものが実装済み。 こんなデータからkeyだけ抜き出したい。。
  13. 13. change nodeで使えそうなfunctions • $keys(object) オブジェクトのkeyを抜き出し • $spread(object) オブジェクトをkeyとvalueを一つの要素にした配列を生成 • $lookup(object,key) • オブジェクトの中からkeyを検索しvalueを返す • $append(array,array) • ふたつの配列を結合 • $number(arg),$string(arg) • 数値変換、文字列変換 “test”: { “abc” : 123, “def” : 456 } [abc,def] [{“abc”:123},{“def”:456}]
  14. 14. switch nodeで使えそうなfunctions • $exist(arg) • 引数が存在するかをt/fで返す。 • $Boolean(arg) • いろいろt/f判定ができる→ • $count(array) • 配列の要素数を返す • $max(array), $min(array)… • いろいろ数字関係
  15. 15. 高度なfunctions • 右記二つは説明がないがnode-redで実装済み • 今回mapは使えることを確認した
  16. 16. 諸注意 • 公式のJSONataリファレンスのものがすべて使えるわけではな い。 • $trimなどnode-redで実装されていないfunctionもある • functionsの選択リストにあるものは使える • Operatorsも非対応なものがある • ~>, ..など高度なもの • flowやglobalの値は参照できない(?) • 直打ちだと効かなかった • 一度msg値にsetすればよい
  17. 17. 参考にしたとこ • 公式サイト:http://jsonata.org/ • github https://github.com/jsonata-js/jsonata • npm https://www.npmjs.com/package/jsonata • JSONata Tech Talk • https://www.youtube.com/watch?v=c6VHGlAJEaU
  18. 18. JSONataを適度に使いこなして 作業効率あげれるフレンズになろう! special thanks いらすとや

×