Set Targeted JSON Pointer
using JSON Pointer..
ASTER::ACTION::JSON::Set the Targeted JSON Pointer
JSON Pointer をターゲット・パスとして ASTER へ保存します。保存されたターゲットはターゲット・パスに対応した専用の JSON 命令で利用されます。
JSON Pointer は基本的にパスを毎回指定する必要があり、しかしループ処理など同じパスを繰り返し利用する場合には、ターゲット・パスを利用すれば URI の入力を省略できるため処理効率化に貢献します。Targeted JSON Pointer は「ターゲット対応命令」で利用できます。
Targeted JSON Pointer: 対応命令一覧
- JSON :: ACTION :: Batch Assignment for Oi Alt String[n]
- JSON :: ACTION :: Batch Assignment for Oi Alt Val[n]
- JSON :: ACTION :: Batch Assignment for Oi Flag[n]
- JSON :: ACTION :: Targeted Array :: Set the Val As Bool
- JSON :: ACTION :: Targeted Array :: push_back String
- JSON :: CONDITION :: EvD :: if targeted is Array
- JSON :: CONDITION :: EvD :: if targeted is Type of Bool & Val True
- JSON :: CONDITION :: EvD :: if targeted is type of Bool & Val False
- JSON :: EXPRESSION :: Targeted JSON Pointer :: Get As Number Type
- JSON :: EXPRESSION :: Targeted JSON Pointer :: Get Num of Total Array Elements
Parameter.1
JSON Pointer
の入力
実際の JSON Object の例として
{
"test":"Example"
}
ルート直下にある「test」というキー名の文字列をターゲットに指定
"/test"
Parameter.2
ターゲット設定時に「
検索固有 ID
( search uID ) 」を発行します。
検索固有 ID 毎に違う処理をさせたい場合に便利なパラメータです。
ターゲットパス登録時に JSON Pointer の有効性とパス指定先にあるデータ型の型判定が実行されます。もしも JSON 配列型だった場合、即時実行条件である「 Tgt is an Array 」が実行されます。この即時実行条件でイベントの呼び出し元を識別する用途で「 search uID
」が利用されています。
1
search uID を適切に設定することで、別のタイミングで実行された別のターゲットパス登録イベント ( search ID == 2
) と直近のイベント ( Search uID == 1
) を識別できます。
CF25 のイベント行番号を search uID に利用すると、即時実行条件がどの行で設定されたのかが分かりやすくなり、作者はこれをお勧めしています。
注意点
即時実行条件を呼び出す場合、イベント行を他アクションと共有しないでください。
Targeted JSON Pointer を設定する場合、イベント行に他アクションを登録すると、アクションの実行に競合が発生し正常に動作しない場合があります。
上記サンプル画像では行 3
のアクションを行 2
へまとめることはできません。
Targeted JSON Pointer を登録すると ASTER
はパス指定先のデータ型をチェックします。データ型が配列だった場合、即時実行条件が起動し、処理はイベント行 3
から 4
へ行遷移します。
行遷移中はまだ
行 3
のイベントが完全に終了していない状態です。
行 4
のアクションが終了した後に、再び行遷移して行 3
へ戻り、行 3
のアクションが終了します。
このような即時実行条件を含む処理について、CF25 のイベント作成では基本的に独立させた行で利用した方が安全です。これは CF25 の標準機能である高速ループとほぼ同じ仕様であり、仕組み的にも同等です。