ES5入門 - JSON編
本エントリーは「to-R JavaScript Advent Calendar 2015」10日目のエントリー、ES5のJSON周りの機能について解説します。
前回は配列まわりの解説をしましたが、今回はES5で追加されたJSON周りの機能について解説します。
ES5ではJSON.parse()とJSON.stringify()が新たに追加されました。
JSON.parse()
JSON.parse()は引数で与えられたオブジェクトや文字列をJSON形式に変換します。
以下のように引数にJSON文字列を与えることで、それをJSON形式のオブジェクトに変換します。
var result = JSON.parse('{"bar":"foo"}');
console.log(result); // Object {bar: "foo"}
引数には厳密なJSON形式を指定しなくてはいけないので注意が必要です。
以下のようにbarがダブルクオーテーションで囲まれていない場合はエラーになってしまいます。
var result = JSON.parse('{bar:"foo"}');
console.log(result); // Uncaught SyntaxError:
JSON.stringify()
JSON.stringify()はJSON形式やObject形式のオブジェクトをJSON文字列に変換するためのメソッドです。
以下のように指定すると文字列に変換されます。
var result = JSON.stringify({bar: "foo"});
console.log(result);//"{"bar":"foo"}"
JSON.parse()と違い引数に指定するのは厳密なJSON形式ではなくObject形式で問題ありません。上のサンプルではbarがダブルクオーテーションで囲まれていないためJSON形式としては不適切ですが、ちゃんとダブルクオーテーションで包まれたJSON文字列が出力されます。
いつ使うの?
APIとのやりとりにフォーマットが決まっている場合に利用されるケースが多いです。
また、cookiなどにデータフォーマットを格納しておきたいケースではJSON.stringify()で文字列に変換して格納しておき、取り出してからJSON.parse()で変換してから利用するなどが可能です。
次回はObject.create()について解説します。