JSON(JavaScript Object Notation)は、軽量で人間にも読みやすく、機械での解析も容易なデータフォーマットです。主にデータの交換や保存に使用されます。JavaScriptでは、JSONを扱うためのいくつかのメソッドが提供されており、これにより簡単にデータを操作することができます。本記事では、JSONの基本的な構造、JavaScriptにおける操作方法、そして実際の利用例を包括的に解説します。
1. JSONの基本構造
JSONは、2つの基本的なデータ型を使って情報を表現します。これらは「オブジェクト」と「配列」です。

-
オブジェクトは、キーと値のペアで構成されています。キーは文字列として記述し、値には文字列、数値、真偽値、配列、さらには別のオブジェクトを指定することができます。
-
配列は、複数の値を順序通りに格納するためのデータ構造です。
例: オブジェクトと配列
json{
"名前": "田中太郎",
"年齢": 30,
"趣味": ["読書", "映画鑑賞", "旅行"],
"住所": {
"市区町村": "東京都",
"郵便番号": "100-0001"
}
}
上記のJSONデータは、名前、年齢、趣味(配列)、住所(オブジェクト)を含む構造です。
2. JSONとJavaScriptの相互変換
JavaScriptでは、JSON.stringify()
とJSON.parse()
というメソッドを使って、オブジェクトとJSON形式の文字列を相互に変換することができます。
2.1 オブジェクトからJSON文字列への変換
JSON.stringify()
は、JavaScriptのオブジェクトをJSON形式の文字列に変換します。
javascriptlet person = {
名前: "田中太郎",
年齢: 30
};
let jsonString = JSON.stringify(person);
console.log(jsonString);
// 出力: {"名前":"田中太郎","年齢":30}
2.2 JSON文字列からオブジェクトへの変換
JSON.parse()
は、JSON形式の文字列をJavaScriptのオブジェクトに変換します。
javascriptlet jsonString = '{"名前":"田中太郎","年齢":30}';
let person = JSON.parse(jsonString);
console.log(person.名前); // 出力: 田中太郎
console.log(person.年齢); // 出力: 30
3. JSONの使用例
3.1 サーバーからのデータ受け渡し
Webアプリケーションでは、サーバーからJSON形式でデータを受け取り、JavaScriptで処理することが一般的です。例えば、fetch()
APIを使ってサーバーからJSONデータを取得し、それをオブジェクトとして操作することができます。
javascriptfetch('https://api.example.com/user')
.then(response => response.json())
.then(data => {
console.log(data);
// 受け取ったデータを処理する
})
.catch(error => console.log('エラー:', error));
この例では、サーバーから受け取ったJSONデータをresponse.json()
でパースし、その後JavaScriptで処理しています。
3.2 データの保存と送信
クライアントサイドでのデータ保存や送信にもJSONは役立ちます。例えば、ローカルストレージにデータを保存する際、JSONを使用してオブジェクトを文字列に変換し、保存することができます。
javascriptlet user = {
名前: "田中太郎",
年齢: 30
};
// オブジェクトを文字列に変換してローカルストレージに保存
localStorage.setItem('userData', JSON.stringify(user));
// 保存したデータを取り出してオブジェクトに戻す
let savedUser = JSON.parse(localStorage.getItem('userData'));
console.log(savedUser.名前); // 出力: 田中太郎
4. JSONの注意点
4.1 JSONのデータ型
JSONは基本的に次のデータ型をサポートします:
-
文字列(String)
-
数値(Number)
-
真偽値(Boolean)
-
配列(Array)
-
オブジェクト(Object)
-
null
JSONでは関数やundefined
を扱うことができません。また、コメントも含めることができません。このため、JSON形式でのデータ交換や保存時には、この制約を考慮する必要があります。
4.2 JSONのセキュリティ
外部から取得したJSONデータを扱う際には、セキュリティにも注意が必要です。特に、クロスサイトスクリプティング(XSS)攻撃に対する対策を施すことが重要です。サーバーから受け取ったデータをそのまま表示する場合、ユーザー入力を適切にエスケープする必要があります。
5. JSONの最適化
大規模なWebアプリケーションでは、JSONデータのサイズが重要な要素になります。データ転送量を減らすために、以下のような最適化手法が有効です:
-
不要なデータを削除する
-
キー名を短縮する(例:
"name"
→"n"
) -
圧縮アルゴリズムを使ってJSONデータを圧縮する
結論
JSONは、データの交換や保存において非常に強力なフォーマットであり、JavaScriptを使うことで簡単に操作することができます。JSON.stringify()
とJSON.parse()
を適切に使うことで、オブジェクトとJSON形式のデータを相互に変換し、さまざまな場面で活用することができます。JSONの基本を理解し、実際にどのように利用できるかを学ぶことは、モダンなWeb開発において非常に重要です。