JSON
(JavaScript/JSON から転送)
ナビゲーションに移動
検索に移動
JSON(ジェイソン、JavaScript Object Notation)とは、JavaScriptのオブジェクトの文法をもとにした軽量データ記述言語およびデータシリアライゼーションフォーマットです。
文法[編集]
用語[編集]
- キー
- 連想配列の要素を特定するアドレス
- 値
- 連想配列の要素そのもの
例:
{"これがキー": "これが値"}
- 文字列
- 二重引用符で囲まれた0文字以上の文字の並びを表すトークン
例:
"これは文字列"
""
"このように二重引用符「\"」を文字列の中に含めることができる"
"全角空白=「\u3000」のようにエスケープシーケンスを使用してもよい"
キーの重複[編集]
キーが同じ連想配列内で複数回現れても文法上は不正とならない[1]が、紛らわしいので可能であれば控える。
JavaScriptでの活用例[編集]
たとえば、下記のような、htmlファイルに、JavaScript を組み込んだコードで、
<html>
<head>
<script type="text/javascript">
// 成績表
var seiseki = [
{"name": "ヤマダ" , "kokugo": 80 , "suugaku": 70 },
{"name": "サトウ" , "kokugo": 60 , "suugaku": 90 }
]
// デバッグ確認用
document.write (seiseki[1].name);
</script>
</head>
</html>
における、
[
{"name": "ヤマダ" , "kokugo": 80 , "suugaku": 70 },
{"name": "サトウ" , "kokugo": 60 , "suugaku": 90 }
]
の部分が、JSONを採用したコードの例である。
このhtmlファイルをwebブラウザで読む込むと、
サトウ
と表示する。
メソッド[編集]
- JSON.parse
- JSON文字列をオブジェクトに変換して返します。
- JSON.stringify
- オブジェクトをJSON文字列に変換して返します。
使用例[編集]
// json = '{"key": "value"}'; と同じ
var json = JSON.stringify( { 'key': 'value' } );
alert(json); // {"key": "value"}
// object = { 'key': 'value' }; と同じ
var object = JSON.parse(json);
JSONP[編集]
JSONP(ジェイソンピー、JSON with Padding)とは、動的にscript
要素を生成してJSONが埋め込まれた外部スクリプトを読み込むテクニックを指します。
function jsonp(json) {
alert( json.key );
}
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = 'http://www.example.com/api?callback=jsonp';
document.body.appendChild(script);
ここでhttp://www.example.com/apiが次のような返答を返すことを想定します。
jsonp({"key":"value"});
するとあらかじめ定義しておいたjsonp
関数が呼び出されるので、"value"
と表示されます。このようなテクニックを用いて外部のウェブサーバとJSON形式のデータをやり取りすることができます。
脚注[編集]
- ^ RFCにおいてはSHOULD NOTレベルでの要請