JSON とは?
■JSON とは?
「JavaScript Object Notation」の略で「ジェイソン」といいます。
JSON は、数値や文字列や配列やオブジェクトなどのデータを、文字列で表現できる軽量なフォーマットです。
「JavaScript 内のオブジェクト」と「文字列」との相互変換が簡単に扱えるようになります。
■JSON のフォーマットについて
JavaScript では、配列とオブジェクトを作成したい時に、以下のように「初期データを格納しつつ作成する」事ができます。
初期データを格納して配列を作成
var ary = [true , false , 0 , 1 , 2 , 0.345 , "あ" , "い"];
初期データを格納してオブジェクトを作成
var obj = {
a : true,
b : false,
c : 0,
d : 1,
e : 2,
f : 0.345,
g : "あ",
h : "い"
};
この表記に近い形で文字列として表現したものが JSON 形式となります。
JSON は、オブジェクトのキーをダブルコーテーション『" "』でくくる必要があります。
シングルコーテーション『' '』でくくる事はできません。
配列を JSON で表現
[true,false,0,1,2,0.345,"あ","い"]
オブジェクトを JSON で表現
{"a":true,"b":false,"c":0,"d":1,"e":2,"f":0.345,"g":"あ","h":"い"}
配列とオブジェクトの組み合わせを JSON で表現
{"ary":[0,1,2],"obj":{"a":0,"b":1,"c":2}}
JSON は、数値型、文字列型、Boolean 型、Array 型、Object 型、null を表現できます。
数値は、「16 進数」や 「8 進数」で表記することはできません。
文字列は、ダブルコーテーション『" "』でくくりますが、シングルコーテーション『' '』でくくる事はできません。
JSON は、 eval 関数で簡単に JavaScript のオブジェクトに復元する事ができますが、セキュリティリスクがあるのでかわりにパース関数を使用します。
json 文字列を eval 関数を使ってオブジェクトに変換する例です。
JSON を eval 関数でオブジェクトに復元(注.セキュリティリスクあり)
var str = '{"ary":[0,1,2],"obj":{"a":0,"b":1,"c":2}}';
var obj;
eval("obj = " + str);
// テスト出力
console.log(obj.ary);
console.log(obj.obj);
オブジェクトから JSON に変換する
■オブジェクトから JSON に変換する
オブジェクトから JSON に変換するには、JSON.stringify() メソッドを使用します。
引数に、JavaScript のオブジェクトを指定します。
戻り値から、JSON 文字列が得られます。
Object から JSON 文字列に変換
var obj = {
ary:[0,1,2],
obj:{
a:0,
b:1,
c:2
}
};
var str = JSON.stringify(obj);
// テスト出力
console.log(str);
JSON からオブジェクトに変換する
■JSON からオブジェクトに変換する
JSON からオブジェクトに変換するには、JSON.parse() メソッドを使用します。
引数に、JSON 文字列を指定します。
戻り値から、JavaScript のオブジェクトが得られます。
JSON 文字列からオブジェクトに変換
var str = '{"ary":[0,1,2],"obj":{"a":0,"b":1,"c":2}}';
var obj = JSON.parse(str);
// テスト出力
console.log(obj.ary);
console.log(obj.obj);
