ASTER::ACTION::JSON::Overwrite with Sequential Numbering, Dedicated for 2D-Array.

using JSON Poinetr..

二次元配列専用の JSON データ編集機能、自動化された特殊なループ処理設計された機能

二次元配列に「整数型」数値を一括代入する際に利用されます。

二次元配列の特定要素に対してループ処理で通し ( Sequential Numbering ) を入力します。

パラメータ.1

JSON Pointer

e.g. “/test/0/0” = ( キー名が “test” の二次元配列、test[0][0] を対象としたループ処理 )

キー名 “test” が二次元配列であるか型チェックを行っています。

型が一致しない場合、すべての処理は中断され命令は実行終了します。

  e.g.
"/test"      = 配列である
"/test/0"    = 配列である   ( ここで二次元配列であると確定、ループ処理対象 )
"/test/0/0"  = 配列要素指定 ( 0 だから配列の先頭要素が指定されている例、固定 )
  

配列要素指定とループ処理回数指定を設定できるので、ループ開始・終了位置を調整できます。

e.g.

“/test” が 5 つの要素を持った配列で、ループ処理回数が 2 と指定された場合、

“/test/2/0” = test[2][0] からループ処理開始。

  test[0] - test[1] - { test[2][0] - test[3][0] } - test[4]; 
  

{ test[2] - test[3] } だけがループ処理対象となる。

JSON Array 形式の多次元配列は異なる型の混在が可能なので、"/test/2" が配列だった場合、次の “/test/3” も配列であるとは限らない。

ループ処理実行中に型チェックエラーが発生した場合、ループ処理はスキップされエラーは出さない。

型チェックはループ処理毎に実行されているので、"/test/3" が整数型だった場合、型チェックがエラーを出し通し番号の入力処理はスキップされる。

スキップ後、まだループ処理が残っている場合、インデックスは一つ進み、型チェックが再度実行される。

今回の例だとループ処理回数が 2 なので、"/test/3" で型チェックエラーが発生したらループ終了となる。

“/test/2” が配列でなかった場合、実行前の型チェックエラーで弾かれるから、そもそもループ処理が開始されない。

  test[0][0]
     ↑  ↑
     |  + ------ 固定されている配列要素   >> ループが進んでも要素数は不変
     |
     + --------- ループ処理対象の配列要素 >> 0,1,2...とループは進む

test[0][0] → test[1][0] → test[2][0] ...
     ↑            ↑            ↑
  

パラメータ.2

「整数型」数値を文字列型で1つのパラメータにまとめて送信します。

書式チェックがあるため、無効な数値を入力した場合、実行時に書式エラーが出ます。

書式エラーが出た場合、すべての処理を中断し命令は実行終了します。

e.g. " 3 , 0 , +1 " = ( ループ処理回数、通し番号の開始数、通し番号に対する増減値 )

可読性向上のためホワイトスペースは自由に利用できます。

値は全て整数、符号無し整数はループ処理回数のみ。あとは符号付き整数が利用できます。

ループ処理回数はマイナス値を入力できません。入力した場合、書式エラーになります。

通し番号はプラスマイナス値を設定できます。

増減値は通し番号に対して加算される値です。可読性のため符号の利用を推奨。

書式エラーの例 e.g. “-1, 0, -1” = ( ループ回数がマイナス値 ) e.g. " 3, 10, +0.1" = ( 浮動小数点の利用 )