何ができるか

Content で保持している Json 形式のデータから値を取得する。
内部で使用されているのはおそらく Java ライブラリの JsonPath だと思われる。

どんな時に使うか

Content に Json データが格納されてきたら、としか言いようはないが強いて言うならリクエストを受け取った時や、InvokeHTTP などでレスポンスを受け取った時に各種値を取得したい時に使用する。

どう使うか

プロパティタブ画面、右上の+マークをクリックすると 格納名→ Value 値の順で入力ができる。
Value 値には Json データ内の値を指定する文法(リンク先参照)を記載する。

他設定項目は以下。

Destination:
Json データから取得した値を以下のどちらに格納するかを選択する。
・Attribute
・Content
Content に選択した場合は一件しか設定できないため注意。
あまり使われないと思うのだが、デフォルトでは Content が設定されているので合わせて注意。

Returun Type:
以下を設定できる。
・auto-detect
・json
・scalar
JsonPath によって取得した値をどの形で受け取るか、というもの。
auto-detect を選択すると格納先が Attribute なら scalar となり、Content なら json となる。

Path Not Found Behavior:
以下を選択できる。
・warn
・ignore
JsonPath により指定したものの、対象が存在しない場合にどうするかを決められる。
ignore は特に何も起こさず正常とみなされるが、warn にすると、同様に正常とみなされはするが、プロセッサ自体が異常の反応を示し、log タイプを warn でログを出力してくれる。
※ちなみに Destination が Content に設定している時は JsonPath の対象が見つからなかった場合 unmatched に流れるため注意。

Null Value Representation:
以下を設定できる。
・empty string
・the string ‘null’
大体察してもらえるかと思うが、JsonPath による対象が null だったときの動作を指定する。
前者ならから文字列として格納。後者なら null として格納する。

わからないこと

scalar ってなんぞやって話。
軽く調べてみてもなんというか物理学としてのスカラーしか出てこないし…
$ がついてるとかなんとか…ピンと来ない。

あと1つか2つ書いたら Qiita とクロス投稿でまとめてみようと思う。