JSON は、データを交換するための軽量なデータ形式です。人間と機械が簡単に理解できるように、テキストベースのフォームで構成されています。
JSONとは?
JSON は JavaScript Object Notation の略で、データを表現するための軽量な形式です。JSON は”属性”と”値”のペアの形式で構成されており、データの形式をシンプルに示すことができます。そのため、現在では広く使用されています。
JSONの特徴
- 読み取り可能:人間が読み取り可能で理解しやすいテキスト形式
- 軽量:データの保存と転送が効率的で、他の形式よりも負荷が少なくなります。
- 言語非依存:JSON はさまざまなプログラミング言語でサポートされており、他の言語間でデータを転送するのに最適です。
JSONの構造
(1) 基本構造
JSON データは括弧に従ってデータを分類します。
- オブジェクトの場合は{ }
- 配列の場合は[ ]
オブジェクトの例
{ "name" : "Alice" }
配列の例
[ "white", "red", "yellow", "green", "blue" ]
(2)データタイプ
JSON には次のようなコア データタイプがあります。
- キーと値(属性と値)のペア
- オブジェクト:順序付けられていないキーと値のペアのコレクション
- 配列:順序付けられたキーと値のペアのコレクション
(2.1) キーと値(属性と値のペア)
キーはコロン (:)、文字列、および引用符で囲まれた部分の左側に配置されます。値はコロン (:) の右側に配置されます。
例
{
"name": "Alice",
"age": 25,
"city": "New York"
}
(2.2) オブジェクト
オブジェクトは中括弧で囲まれ、複数の属性と値のペアで構成されます。順序はなく、カンマを使用して分類され、他のオブジェクトや配列に含めることができます。
例
{
"name": "Bob",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Los Angeles"
}
}
配列の例
{
"name": "John",
"age": 35,
"languages": ["JavaScript", "Python", "Java"],
"address": {
"street": "123 Main St",
"city": "Exampleville"
}
}
他のオブジェクトの例
{
"person": {
"1": {
"name": "Alice",
"age": 28,
"city": "New York"
},
"2": {
"name": "Bob",
"age": 35,
"city": "Los Angeles"
}
}
}
(2.3) 配列
配列は括弧で囲まれ、複数の属性と値のペアで構成されます。配列には順序があり、カンマを使用して分類され、他のオブジェクトまたは配列に含めることができ、インデックスは 0 または 1 で始まります。
例
{
"person": {
"name": "Alice",
"age": 28,
"hobbies": [
"reading",
"hiking",
"painting"
],
"address": {
"street": "123 Main St",
"city": "New York"
}
},
"pets": [
{
"type": "dog",
"name": "Buddy"
},
{
"type": "cat",
"name": "Whiskers"
}
]
}
(3) データ型
データ型は属性値ペアの右側にあり、次の型が許可されます。
オブジェクト
配列
文字列
数値
Boolean (論理)
Null (明示的な不在)
この部分から、文字列、数値、ブール値のデータ型について見ていきましょう。
(3.1) 文字列
文字列はペア引用符で囲まれており、空または複数の Unicode テキストで構成されています。注意してください。文字列は単一引用符で囲まれていますが、これは無効です。
使用できるエスケープ文字は他にもいくつかあります。
\” ダブルフォート
\\ バックスラッシュ
\/ スラッシュ
\b バックスペース
\f フォームフィード
\n 改行
\r 復帰(キャリッジリターン)
\t タブ
\u このエスケープ文字の後に4桁の16進数(Unicode文字)が続きます。
エスケープ文字は、次のようにフォルダー パスを表すときによく使用されます。
{
"folderPath": "C:\\root\\documents\\projects"
}
(3.2) 数値
数字は 10 進法で表され、0 で始まることはできません。小数点から始まる小数部を持つことができます。また、10 を底とする指数を持つこともできます。これは、プラス (+) またはマイナス (-) 記号とともに 'e' または 'E' 表記を使用して示されます。数字は二重引用符で囲まないでください。
例
{
"year": 2023,
"latitude": 40.7128,
"longitude": -74.0060,
"earth_distance_km": 1.496e8,
"earth_distance2_km": 1.496e+8,
"speed_of_light_mps": 3e+8,
"speed_of_light2_mps": 3E+8,
"atomic_mass_kg": 2.34e-27,
"atomic_mass2_kg": 2.34E-27
}
(3.3) Boolean
ブール値には true または false のデータのみが含まれ、二重引用符で囲まれていません。
{
"isStudent": true,
"isWorking": false,
"isOnline": true,
"hasLicense": false
}
JSONの使用
JSON は、Web アプリケーションとサーバー間のデータ交換によく使用されます。RESTful API、Web サービス、Web アプリケーションで構造化データの送受信に広く利用されています。