JSONとは

 javascriptをある程度学び、Ajaxなどの非同期通信を学ぶようになってくると、必ずと言って良いほどお世話になるのが、JSONという概念です。

JSONとは

 JavaScript Object Notationの略で、直訳すると、「javascriptオブジェクト表記法」となります。

 つまりJSON、XMLなどと同様に、javascriptで使うオブジェクトを表す便利なただの文字列だったわけですね。

実際のJSON

 JSONは、javascriptのオブジェクトリテラルと同じように書くことができます。次の例では、ID、名前、メールアドレス、年齢、持っている免許などのユーザー情報をJSONとして記述しています。

{
  "id" : 1,
  "name" : "Michael",
  "mail" : "michael@example.com",
  "age" : 20,
  "licenses" : ["car" , "motorcycle"]
}

 Key : Value を一組として、カンマ区切りでプロパティを記述していきます。Valueには、数値、文字列のほかに、配列やネストされた連想配列(オブジェクト)が格納できます。javascriptであれば、最後のカンマや型など自由自在ですが、JSON記法では明確な規約があります。混同してしまうと後々面倒なことになるので、しっかり押さえておきましょう。

JSONとjavascriptオブジェクトとの違い

 JSONは、javascriptのオブジェクトリテラルに比べて、以下のような違いがあります。

  • keyは文字列に限る
  • 数値型は10進数に限る(16進表記などは不可)
  • 文字列リテラルはダブルクォートに限る
  • 最後の要素の末尾ににカンマを付けてはならない

 反面、boolean型やnullなどはそのまま定義できます。bool値やnullは文字列ではありませんから、ダブルクォートを付けてはいけません。

{
  "isAdmin" : true
}

まとめ

 とはいえ、大抵の言語のフレームワークはJSONをパースする関数やクラスを搭載しています。javascriptでも、JSON.parseJSON.stringifyなどの関数がありますので、生でJSONを記述する機会はそうありません。

 しかし、node.jsなどのサーバーサイドjavascriptをはじめ、様々なライブラリでは、設定ファイルとしてJSONが使われていたりします。

 その時、javascriptと同様に書くと思わぬところでエラーを起こしてしまいます。はまってしまいがちなので、気をつけておきましょう。