JavaScript オブジェクトとしての JSON

「JavaScript を利用して変換」コンバータを含むステップ アクション内のコンバータ スタックについて考えます。このコンバータは、コンバータで使用される JavaScript で使用するために名前付き INPUT という変数で、前のコンバータからの出力値にアクセスします。INPUT 変数の値は、常に文字列です。

次の表は、INPUT 変数の可能な変換値を示しています。

INPUT 値

JavaScript (OUTPUT =)

結果 (OUTPUT 値)

5

OUTPUT = INPUT

5

5

OUTPUT = INPUT + 3

53

5

OUTPUT = eval(INPUT)

5

5

OUTPUT = eval(INPUT) + 3

8

5

OUTPUT = eval(INPUT + 3)

53

5

OUTPUT = eval(INPUT +「 + 3")

8

[1,2,3]

OUTPUT = INPUT[0]

[

[1,2,3]

OUTPUT = eval(INPUT)[0]

1

{ “a”: 5 }

OUTPUT = eval(INPUT).a

“Syntax Error”

{ “a”: 5 }

OUTPUT = eval("var x=" + INPUT + "; x;").a;

5

JSON を JavaScript に変換する場合は、以下の点に注意してください。

  • INPUT は文字列値になる変数です。したがって、INPUT で実行する操作はすべて文字列操作です。たとえば、+ は文字列を連結するものです。これが、上記の例で INPUT + 3 が 53 になる理由です。
  • 関数 "eval" は正しい JavaScript のみを入力として受け入れます。このため、上記最後の例では、構文上正しくない JavaScript 行 {"a":5} と異なり、正しい構文である var x = {"a":5} では正常に結果が返ります。