JavaScript入門:JSONプログラミングを分かりやすく解説


JSON (JavaScript Object Notation) は、軽量なデータ交換フォーマットであり、JavaScriptをはじめ、多くのプログラミング言語で広く利用されています。

このガイドでは、JavaScriptにおけるJSONプログラミングの基本について、分かりやすく解説します。

JSONとは?

JSONは、人間とコンピュータが簡単に読み書きできるテキスト形式のデータフォーマットです。オブジェクト、配列、文字列、数値、真偽値などのデータ構造を表現できます。

JavaScriptとJSONの関係

JSONは、JavaScriptのオブジェクトリテラルの書き方に似ていることから、JavaScriptと密接な関係があります。そのため、JavaScriptでJSONデータを操作することが容易です。

JSONの利点

  • 多くのプログラミング言語でサポートされている
  • 言語間でデータのやり取りが容易
  • 軽量で読み書きしやすい

JSONの例

{
  "name": "田中 太郎",
  "age": 30,
  "address": {
    "city": "東京",
    "country": "日本"
  },
  "hobbies": ["読書", "映画鑑賞", "旅行"]
}

この例では、人物に関する情報をJSON形式で表現しています。

JavaScriptでJSONを操作する

JavaScriptには、JSONデータを操作するための組み込みオブジェクトが用意されています。

  • JSON.stringify(): JavaScriptオブジェクトをJSON文字列に変換します。
  • JSON.parse(): JSON文字列をJavaScriptオブジェクトに変換します。

例:JSON文字列をJavaScriptオブジェクトに変換

const jsonString = '{ "name": "田中 太郎", "age": 30 }';
const person = JSON.parse(jsonString);
console.log(person.name); // 田中 太郎
console.log(person.age); // 30

例:JavaScriptオブジェクトをJSON文字列に変換

const person = { name: "田中 太郎", age: 30 };
const jsonString = JSON.stringify(person);
console.log(jsonString); // {"name":"田中 太郎","age":30}

JSONの活用例

  • ローカルストレージへのデータ保存
  • ブラウザとサーバー間のデータやり取り
  • Webサーバー間でのデータ通信

JSONは、JavaScriptでデータのやり取りや保存を行う際に非常に便利なフォーマットです。このガイドで学んだ知識を活かして、ぜひJSONプログラミングを活用してみてください。

  • JSONは、JavaScript以外にも多くのプログラミング言語で利用できます。他の言語でのJSONプログラミングについても調べてみるのも良いでしょう。
  • このガイドでは、JSONの基本的な操作について説明しました。より高度な操作については、さらに詳しく調べてみてください。


JSON文字列をJavaScriptオブジェクトに変換

const jsonString = '{ "name": "田中 太郎", "age": 30 }';
const person = JSON.parse(jsonString);
console.log(person.name); // 田中 太郎
console.log(person.age); // 30

JavaScriptオブジェクトをJSON文字列に変換

const person = { name: "田中 太郎", age: 30 };
const jsonString = JSON.stringify(person);
console.log(jsonString); // {"name":"田中 太郎","age":30}

JSONデータをAjaxで取得する

const url = 'https://jsonplaceholder.typicode.com/todos/1';

fetch(url)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error(error));

JSONデータをローカルストレージに保存

const person = { name: "田中 太郎", age: 30 };
localStorage.setItem('user', JSON.stringify(person));

const storedPerson = JSON.parse(localStorage.getItem('user'));
console.log(storedPerson.name); // 田中 太郎
console.log(storedPerson.age); // 30
const jsonString = '{ "name": "田中 太郎", "age": 30, "hobbies": ["読書", "映画鑑賞", "旅行"] }';
const person = JSON.parse(jsonString);

person.address = { city: "東京", country: "日本" };
person.hobbies.push("音楽鑑賞");

const newJsonString = JSON.stringify(person);
console.log(newJsonString); 
// {"name":"田中 太郎","age":30,"address":{"city":"東京","country":"日本"},"hobbies":["読書","映画鑑賞","旅行","音楽鑑賞"]}
  • JSONに関する情報は、インターネット上にも豊富に公開されています。分からないことがあれば、積極的に調べてみてください。


以下に、JSONの代替となる主なフォーマットとその特徴を紹介します。

XML (Extensible Markup Language)

  • 多くのプログラミング言語とライブラリでサポートされている
  • 複雑なデータ構造を表現できる
  • 構造化されたデータ表現に適している


<person>
  <name>田中 太郎</name>
  <age>30</age>
  <address>
    <city>東京</city>
    <country>日本</country>
  </address>
  <hobbies>
    <hobby>読書</hobby>
    <hobby>映画鑑賞</hobby>
    <hobby>旅行</hobby>
  </hobbies>
</person>

YAML (YAML Ain't Markup Language)

  • シンプルで書きやすい
  • 構成ファイルや設定ファイルによく利用される
  • 人間とコンピュータが読みやすいフォーマット


name: 田中 太郎
age: 30
address:
  city: 東京
  country: 日本
hobbies:
  - 読書
  - 映画鑑賞
  - 旅行

BSON (Binary JSON)

  • MongoDBなどのNoSQLデータベースでよく利用される
  • データ転送時の効率化に優れている
  • JSONのバイナリ表現

MessagePack

  • Apache CassandraなどのNoSQLデータベースでよく利用される
  • BSONよりも高速でコンパクトなデータ表現が可能
  • BSONと同様に、JSONのバイナリ表現

S-Expressions

  • 再帰的なデータ構造を表現するのに適している
  • Lispなどのプログラミング言語でよく利用されるデータ構造


(name "田中 太郎")
(age 30)
(address (city "東京") (country "日本"))
(hobbies "読書" "映画鑑賞" "旅行")
  • 互換性
  • 処理速度
  • データの利用目的
  • データの種類と構造