JSON【JavaScript Object Notation】オブジェクト

メモ

概要

  • JSONJavaScript Object Notation】オブジェクト
    • JSON の仕様に合わせて、文字列リテラルにエスケープされていない下記コードを許可 (例 参照)
      U+2028 (LINE SEPARATOR)
      U+2029 (PARAGRAPH SEPARATOR)

プロパティ

プロパティ備考
JSON[ @@toStringTag ] タグ"JSON"
( [Symbol.toStringTag] )

メソッド

メソッド備考
JSON.parse ( text [ , reviver ] ) JSON テキスト ⇒ JavaScript 値
JSON.stringify ( value [ , replacer [ , space ] ] ) JavaScript 値 ⇒ JSON テキスト

const array = [
  ["'\u000A'", "U+000A (LINE FEED)"],
  ["'\u000D'", "U+000D (CARRIAGE RETURN)"],
  ["'\u005C'", "U+005C (REVERSE SOLIDUS)"],
  ["'\u2028'", "U+2028 (LINE SEPARATOR)"],
  ["'\u2029'", "U+2029 (PARAGRAPH SEPARATOR)"]
];

for (let value of array) {
  try {
    eval(value[0]);
  }
  catch (error) {
    console.log(value[1], error);
  }
}
// ES2019で実行 (ES2018:全て例外)
// 出力:U+000A (LINE FEED) SyntaxError
// 出力:U+000D (CARRIAGE RETURN) SyntaxError
// 出力:U+005C (REVERSE SOLIDUS) SyntaxError