JSON

出典: フリー教科書『ウィキブックス(Wikibooks)』
ナビゲーションに移動 検索に移動
Wikipedia
ウィキペディアJavaScript Object Notationの記事があります。

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形式のデータをやり取りすることができます。

脚注[編集]

  1. ^ RFCにおいてはSHOULD NOTレベルでの要請
このページ「JSON」は、まだ書きかけです。加筆・訂正など、協力いただける皆様の編集を心からお待ちしております。また、ご意見などがありましたら、お気軽にトークページへどうぞ。