1.1 JSONの誕生
JSON (JavaScript Object Notation) はデータ交換用のテキストフォーマットだよ。これは2000年代の初めにDouglas Crockfordによって開発され、そのシンプルさと使いやすさで人気になったんだ。
JSONの主なアイデアは、人間が読みやすく、プログラムが簡単に解析し生成できるフォーマットを作ることだったんだよ。JSONは元々JavaScriptの構文に基づいて開発されたけど、そのフォーマットはとっても汎用的で、他の多くのプログラミング言語でも使われるようになったんだ。今ではJavaScriptとは独立にJSONを利用できるようになってて、いろんなシステムやアプリケーション間のデータ交換の標準となっているんだよ。
JSONはJavaScriptでのオブジェクトの状態の記録に近いものなんだ、まあほぼって感じ。だから、JSONはフロントエンドのAPIを書く人たちの間で特に人気なんだよ。さらに、JSONは設定ファイルやログの保存にも広く使われているんだ。
JSONの主な特徴
人間に優しい読みやすさ:
JSONのフォーマットは人間が読みやすく、理解しやすいんだ。これが設定ファイルやクライアントとサーバー間のデータ交換に便利である理由だよ。
言語に依存しない:
JSONは元々JavaScriptの構文に基づいているけど、どんなプログラミング言語でも使うことができるんだ。多くのプログラミング言語はJSONを扱うための組み込みライブラリを提供しているからね。
パースのしやすさ:
パース(parsing)は、データ、特にテキストやコードの構造を解析して、有意義な情報を抜き出すプロセスのことなんだ。プログラミングの文脈では、テキストデータの処理にパースがよく使われるよ。 JSONはクライアント側とサーバー側のどちらでも簡単にパースして生成できるんだ。今ではどのプログラミング言語にも、オブジェクトをJSONに変換したりその逆を行うためのライブラリが存在するんだよ。
標準であり明らかなリーダー:
10年前、JSONはXMLとAPIの標準をかけて競争していたんだ。でも今、JSONは勝利して、明確なリーダーとなっているんだよ。バックエンドAPIではJSONだけをサポートしていれば十分だし、他のサーバーからAPIが呼び出されても問題ないんだ。
1.2 JSONの構造
JSONは「キーと値」のペアの集合を表してて、その構文は2つの基本構造から成り立ってるんだ:
オブジェクト: オブジェクトは「キーと値」のペアの非順序集合を表しているよ。キーは文字列で、値はJSONがサポートするどんなデータ型でもいいんだ。
{
"name": "John",
"age": 30,
"isStudent": false,
"courses": ["Math", "Science"],
"address": {
"city": "New York",
"zipCode": "10001"
}
}
配列/リスト: 配列は順序付きの値のセットを表してるよ(Pythonのリストに似てるね)。値はJSONがサポートするどんなデータ型でもOKだよ。
["Apple", "Banana", "Cherry", 100, 3.14, true]
Pythonのオブジェクトにすごく似てるでしょ?
JSONは実際にはJavaScriptのデータ記録の標準だから、JavaScriptはかつてPythonにインスパイアされてたんだよ。だから、JSONを使うのが好きになると思うよ。
1.3 JSONのデータ型
JSONは次のデータ型をサポートしているよ:
文字列: ダブルクォートで表されるんだ。
"name": "John"
数値: 整数でも浮動小数点数でもOKだよ。
"age": 30
オブジェクト: 「キーと値」の非順序集合だよ。
"address": {
"city": "New York",
"zipCode": "10001"
}
配列/リスト: 順序付きの値の集合だよ。
"courses": ["Math", "Science"]
ブール値: true
または false
だよ。
"isStudent": false
Pythonとは違って、true
と false
は小文字で書かれるんだ。
null
: 空の値を表すんだ。
"middleName": null
日付と時間: 文字列として渡されるよ。
{
"datetime": "2023-05-15T14:30:00Z",
"date": "2023-05-15",
"time": "14:30:00"
}
以前はUNIXタイムスタンプ形式の数値として渡されることもあったけど、今は過去の話だね。
GO TO FULL VERSION