JSON: JavaScript Object Notation.
JSONは、データの保存と交換のための構文です。
JSONは、JavaScriptオブジェクト表記で書かれたテキストです。
ブラウザとサーバ間でデータを交換する場合、データはテキストのみにしなければなりません。
JSONはテキストで、あらゆるJavaScriptオブジェクトをJSONに変換可能で、JSONをサーバに送信することができます。
また、サーバから受信したJSONを、JavaScriptオブジェクトに変換することもできます。
この方式で、複雑なパースやコンパイルを行うことなく、JavaScriptオブジェクトとしてデータを取扱うことができます。
JavaScriptオブジェクトに格納されデータであれば、オブジェクトをJSONに変換してサーバに送信することができます:
var myObj =
{ "name":"John",
"age":31, "city":"New York" };
var myJSON =
JSON.stringify(myObj);
window.location = "demo_json.php?x=" + myJSON;
Try it Yourself »
JSON.stringify()関数の詳細については、このチュートリアルの後半で説明します。
データをJSON形式で受信した場合は、JavaScriptオブジェクトに変換できます:
var myJSON =
'{ "name":"John",
"age":31, "city":"New York" }';
var myObj =
JSON.parse(myJSON);
document.getElementById("demo").innerHTML = myobj.name;
Try it Yourself »
JSON.parse()関数の詳細については、このチュートリアルの後半で説明します。
データを格納するとき、データは特定のフォーマットでなければなりませんが、格納先を問わず、textは常に正当なフォーマットの1つです。
JSONを使用すると、JavaScriptオブジェクトをテキストとして格納することができます。
Storing data in local storage
//Storing data:
myObj =
{ "name":"John",
"age":31, "city":"New York" };
myJSON =
JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
//Retrieving data:
text = localStorage.getItem("testJSON");
obj =
JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
Try it Yourself »
*
JSONはJavaScript構文を使用していますが、JSONフォーマットはテキストのみです。
テキストは、どのプログラミング言語によってもデータフォーマットとして読み、使用することができます。
JSON フォーマットは、Douglas Crockford によって仕様が決められました。
JSON形式はテキストのみであるため、サーバとの間で簡単に送受信でき、全てののプログラミング言語でデータ形式として使用できます。
JavaScriptには、JSON形式で記述された文字列をネイティブJavaScriptオブジェクトに変換する組込み関数があります:
JSON.parse()
したがって、サーバからJSON形式でデータを受信した場合は、他のJavaScriptオブジェクトと同じように使用することができます。