昨日は「第4回目接種」でありまして倦怠感あり、何もやる気が起きませぬ。気を取り直して予定の yaml ノードをやっつけてしまう所存。やっつけなので、内容は?、まあ、いつものことですかね。
※「ブロックを積みながら」投稿順 index はこちら
さて、YAMLと聞いたら頭の中では、”Yet Another Markup Language”の略だろ~と短絡的に思ったのです。今時の若者は知らず、
yacc “Yet Another Compiler Compiler”
が即座に思い浮かぶからであります。実際、「初期のころ」はYet Anatoher Markup Languageという名乗りだったらしい YAML は、現在では、
YAML Ain’t Markup Language
と名乗られているようです。頭山的(再帰的)かつ否定形で名乗りを定義するなんざGNUにあやかったものと想像されます。
GNU is NOT UNIX
まあ、Markup Languageなんだかそうでないのかよく分からぬYAMLですが、公式サイトは以下に。
上記の公式サイトはアクセスすると分かりますが、「伝統のテキストブラウザ」でアクセスしてもOKなページです。今更みると「かくあらねばならぬ」ような気もいたします。なお、最新バージョンの仕様を解説している以下のページは「今時フツー」なスタイルです。
YAML Ain’t Markup Language (YAML) version 1.2
yamlノードと実験に使ったフロー
yamlノードは、yaml形式の「文字列」がpayloadに載ってくると、Node-REDのオブジェクト(JSONオブジェクト)に変換し、オブジェクトがPayloadに載ってくると yanl形式の「文字列」に変換してくれる相互変換可能なノードです。
今回の実験フローは、左のInjectノードより、
-
- YAML文字列
- JSONオブジェクトの配列
- JSONオブジェクトの構造をもったオブジェクト
を同じ yaml ノードに突っ込んで変換結果を見るだけの「手抜き」です。
yaml ノードの設定が以下に。というか、まったく設定してません。デフォルトのまま。
実験結果
最初は以下のような文字列(payloadのところに azと表示されているのが文字列の意味です。)を食わせてみました。まったくダブルクォーテーションとか無。素の文字列です。
yaml を通過した結果が以下に、payload: objectになっとります。そして abcというプロパティに、文字列の値 “def” が載っておる、と。
続いてpayloadに配列(オブジェクト)を載せてみます。[1, 2, 3 4]っと。
yaml ノードを通過すると、yaml の「リスト」形式の文字列に変換されとります。こんな感じ。
最後は、一応「構造」をもったささやかなオブジェクトです。
yamlノードを通過すると、段付けで構造を表した yaml 形式の文字列になっとります。
怠いので、これにて完了。