JSONとはJavaScriptで何ですか?

JavaScriptにおけるJSONとは?

JavaScriptにおけるJSONとは?

JSONとは「JavaScript Object Notation」の略で、もともとはJavaScriptと連携する他の言語とデータのやりとりをするために考え出された、軽量なデータ交換フォーマットです。人間にとっても機械にとっても読み書きが容易であるという特徴から、現在ではJavaScriptのみならず、様々なプログラミング言語で広く利用されています。

JSONのデータ構造

JSONは、人間にも機械にも理解しやすいシンプルな構造を持っています。基本的には、以下の2つの構造で表現されます。

  • 名前と値のペア (key-valueペア): "name": "value" のように、コロン ":" で区切られた名前と値の組み合わせ
  • 順序付けられた値のリスト: [value1, value2, value3] のように、角括弧 "[]" で囲まれた値の並び

これらの構造を組み合わせることで、複雑なデータ構造を表現することができます。

JSONで表現できるデータ型

JSONでは、以下のデータ型を扱うことができます。
データ型 説明
文字列 (string) ダブルクォーテーションで囲まれた文字列 "Hello, world!"
数値 (number) 整数、小数点数を含む数値 123, 3.14
真偽値 (boolean) true または false true, false
null 値が存在しないことを表す null
オブジェクト (object) 中括弧 "{}" で囲まれた、名前と値のペアの集合 {"name": "Taro", "age": 30}
配列 (array) 角括弧 "[]" で囲まれた、順序付けられた値の並び ["apple", "banana", "orange"]

JSONの例

以下は、書籍情報を表すJSONの例です。

{
  "title": "The Lord of the Rings",
  "author": "J.R.R. Tolkien",
  "published": 1954,
  "genres": ["fantasy", "adventure", "high fantasy"]
}

JavaScriptにおけるJSONの利用

JavaScriptでは、JSON.parse() 関数を使ってJSONデータをJavaScriptオブジェクトに変換し、JSON.stringify() 関数を使ってJavaScriptオブジェクトをJSONデータに変換することができます。

JSON.parse()の例


const jsonString = '{"name":"Taro", "age":30}';
const jsonObject = JSON.parse(jsonString);
console.log(jsonObject.name); // "Taro"を出力

JSON.stringify()の例


const jsonObject = { name: "Taro", age: 30 };
const jsonString = JSON.stringify(jsonObject);
console.log(jsonString); // "{\"name\":\"Taro\",\"age\":30}"を出力

JSONのメリット

JSONには、以下のようなメリットがあります。
  • 軽量で、データの送受信が高速
  • 人間にも機械にも読み書きしやすい
  • 様々なプログラミング言語で利用可能

参考資料

よくある質問

Q1: JSONはJavaScriptだけで使えるのですか?

A1: いいえ、JSONはJavaScript以外の多くのプログラミング言語でも利用できます。データ交換フォーマットとして広く普及しています。

Q2: JSONとJavaScriptオブジェクトの違いは何ですか?

A2: JSONはデータフォーマットであり、JavaScriptオブジェクトはJavaScriptにおけるデータ型の1つです。JSON.parse()関数でJSONデータをJavaScriptオブジェクトに変換したり、JSON.stringify()関数でJavaScriptオブジェクトをJSONデータに変換したりすることができます。

Q3: JSONで日付を扱うことはできますか?

A3: JSON自体には日付型は存在しません。日付を扱う場合は、一般的に文字列として表現します。例えば、"2023-10-27T10:00:00Z" のようにISO 8601形式で表すことが多いです。

その他の参考記事:JavaScript JSON