JSON.parse()【JSON テキスト → JavaScript 値】メソッド

メモ

  • JSON テキスト から JavaScript 値に変換

構文

  • JSON.parse ( text [ , reviver ] )

  • text:JSON テキスト
  • reviver:復元関数 (2個の引数を持ち、戻り値は復元後の値)
    引数名 (例)説明
    keyキー
    value
    戻り値が undefined の場合、削除

JavaScript 値

SyntaxError 例外:無効 JSON テキスト
console.log(JSON.parse( '{ "x":10 }' ));  // 出力:Object {x: 10} 例外なし
console.log(JSON.parse( '{ x:10 }' ));    // SyntaxError 例外

var obj = JSON.parse('null');
console.log(typeof obj, obj); // 出力:object null
obj = JSON.parse('false');
console.log(typeof obj, obj); // 出力:boolean false
obj = JSON.parse('true');
console.log(typeof obj, obj); // 出力:boolean true
obj = JSON.parse('"string"');
console.log(typeof obj, obj); // 出力:string string
obj = JSON.parse('123');
console.log(typeof obj, obj); // 出力:number 123
obj = JSON.parse('[ 1, 2, 3 ]');
console.log(typeof obj, obj); // 出力:object [1, 2, 3]
obj = JSON.parse('{ "x":10, "y":20, "z":30 }');
console.log(typeof obj, obj); // 出力:object Object {x: 10, y: 20, z: 30}
// 復元関数指定
function reviver(key, value) {
  if (value < 100) {
    return undefined; // 値が100未満の場合、undefined
}
  return value;       // 値が100以上の場合、変換なし
}
var obj = JSON.parse('10', reviver);
console.log(typeof obj, obj);     // 出力:undefined undefined
obj = JSON.parse('100', reviver);
console.log(typeof obj, obj);     // 出力:number 100
obj = JSON.parse('[ 110, 90, 150 ]', reviver);
console.log(typeof obj, obj);     // 出力:object [110, 2: 150]
obj = JSON.parse('{ "x": 110, "y": 90, "z": 150 }', reviver);
console.log(typeof obj, obj);     // 出力:object Object {x: 110, z: 150}

関連