JSON

Contents

JSONって?

JSONとは、JavaScriptにおけるオブジェクトの表記法を応用したデータ形式を指します。

JavaScriptでの扱いが簡単です。WebサービスやAjaxなどでプログラム間でのデータ交換フォーマットとして多用されています。
数多くのプログラミング言語でJSONを簡単に扱えるようにする追加機能が公開されています。

 

JSONには以下のような特徴があります。

・データ構造が把握しやすい
・テキストデータで記述されており、可読性が高い

JSONは、複雑なデータ構造を整理して記述することができます。また、人間の目で見たときにデータの概要を把握しやすいという特徴があります。

JSONのサンプル

JSONのサンプルを見てみましょう。

{ 
   "name":"taro",
   "age":30,
   "class":"A"
}

このJSONは、ある人物の情報を表したデータです。左辺がデータのプロパティ名で、右辺が値を表します。 サンプルのJSONからは、以下のような情報を読み取ることができます。

・名前(name) は taro さんである
・年齢(age) は30歳である
・クラス(class) はAである

JSONでは、プロパティ名、および文字列の値をダブルクォートで囲むことになっています。値が数値やBooleanの場合、ダブルクォートで囲む必要はありません。下記のJSONは、「age」の値がダブルクォートで囲まれていませんが、正しいJSONデータです。

{ 
   "name":"taro",
   "age":30,
   "class":"A"
}

階層化されたJSON

JSONでは、複雑なデータを階層構造で表現することができます。 以下のデータを見てみましょう。

{ 
   "name":"taro",
   "age":30,
   "class":"A",
   "family":{ 
      "father":"ichiro",
      "mother":"hanako",
      "brother":{ 
         "name":"jiro",
         "age":20,
         "class":"B"
      }
   }
}

先述したサンプルのJSONにデータが加わって、さらに複雑になっています。

●「家族」という項目が追加され、以下のデータが含まれている
〇father(父)
■父の名前は「ichiro」である
〇mother(母)
■母の名前は「hanako」である
〇brother(兄弟)
■brother というデータには、さらに「name(名前)」「age(年齢)」「class(クラス)」というデータ項目が含まれている

このように、JSONは複雑なデータを階層構造で表示することができます。

JSONの配列

複数のJSONデータをまとめ、配列として生成する場合があります。 以下は、複数のメンバーのJSONデータを配列としてまとめたケースです。

[{ 
   "name":"taro",
   "age":30,
   "class":"A"
},
{ 
   "name":"jiro",
   "age":25,
   "class":"B"
},
{ 
   "name":"saburo",
   "age":35,
   "class":"C"
}]

この例では、3つのJSONデータが配列に格納されています。