「プログラミングを勉強してたらJSONって言葉が出てきたけど、なんか記号がいっぱいで意味わからん…」って思ったことない? WebアプリやAPIの説明を読むたびに出てくるのに、誰もちゃんと教えてくれない、あの謎の文字列。この記事を読めば、JSONがどんなものか・なぜ使われるか・どう読み書きするかが全部わかるよ。
- JSONは人間にも機械にも読める データの書き方のルール(フォーマット) で、世界中のWebサービスで使われている
- 波カッコ・角カッコ・コロン・ダブルクォートという 4種類の記号 の意味を覚えれば読み書きできる
- XMLやCSVより シンプルで入れ子構造に強い ため、特にWeb・APIの世界で標準になっている
もうちょっと詳しく
JSONは「JavaScript Object Notation」の略で、つまり「JavaScriptのオブジェクトを文字で表現する記法」ということ。2000年代初頭にDouglas Crockfordという人が「もっとシンプルにデータを送れないか」と考えて広めた書き方で、今では世界中のAPIやアプリが採用している事実上の標準フォーマットだよ。スマホのアプリがサーバーから天気情報を取ってくるとき、LINE botがメッセージを受け取るとき、GoogleマップのAPIを呼ぶとき——いたるところでJSONは使われている。プログラミングを本格的に学ぶなら、JSONの読み書きは「ひらがな・カタカナ」と同じくらい基礎中の基礎のスキルだよ。
JSONはJavaScriptの書き方が元になってるけど、今はPython・Ruby・PHPなどどの言語でも読み書きできるよ!
⚠️ よくある勘違い
→ 名前に「JavaScript」が入ってるから誤解されがちだけど、JSONはただのテキストの書き方ルール。JavaScriptと関係なく、どのプログラミング言語でも扱えるよ。
→ Python・Java・PHPどれでもJSONを読み書きするライブラリが標準で用意されている。「テキストの形式」なので、メモ帳で開いても中身が見えるほど汎用的なんだよ。
[toc]
JSONって結局なに? 中学生でもわかる超基本
まず一番シンプルに言うと、JSONは「データを整理して書くときの形式」だよ。
たとえばクラスの友だちの情報をメモするとき、こんなふうに書くよね。
- 名前:山田太郎
- 年齢:15
- 趣味:サッカー、ゲーム
これをJSONで書くとこうなる。
{
"name": "山田太郎",
"age": 15,
"hobbies": ["サッカー", "ゲーム"]
}
なんとなく読めない? 「name(名前)が山田太郎、age(年齢)が15、hobbies(趣味)がサッカーとゲーム」って書いてあるよね。これがJSONの正体だよ。難しそうに見えた記号も、意味がわかれば全然怖くない。
JSONが生まれた背景
2000年代初め、Webの世界ではページをリロードせずにデータを取得する「Ajax」という技術が流行り始めた。つまり「画面はそのままで、裏でこっそりデータだけ取ってくる」仕組みのことだよ。そのときデータを送る形式としてXMLが使われていたんだけど、XMLはタグが多くてファイルが大きくなりすぎる問題があった。「もっとシンプルにできないか」という流れで生まれたのがJSONなんだ。
JSONは「テキストファイル」の一種
大事なポイントとして、JSONは特別なバイナリファイル(機械しか読めない圧縮ファイル)ではなく、普通のテキストファイルだよ。拡張子は「.json」で、メモ帳やVS Codeで普通に開ける。「どこかのサーバーが謎の暗号を送ってきてる」んじゃなくて、「人間が書いた文字列をそのまま送ってる」だけ。それが安心感につながって広まった理由のひとつだよ。
JSONの書き方ルール——記号の意味を覚えよう
JSONで使う記号はたった4種類。これを覚えるだけで読み書きができるようになるよ。
① 波カッコ `{ }` ——「オブジェクト」を表す
波カッコは「ひとかたまりの情報(オブジェクト)」を囲むために使う。オブジェクトとは「関連した情報をひとまとめにしたもの」ということ。さっきの山田太郎の例で言うと、名前・年齢・趣味という「山田太郎に関するすべての情報」を波カッコでまとめてるんだ。辞書みたいに「この中に色んな情報が入ってますよ」という意味だと思ってね。
② 角カッコ `[ ]` ——「配列」を表す
角カッコは「複数のデータを並べたリスト(配列)」を表すよ。さっきの例の `[“サッカー”, “ゲーム”]` がそれ。「趣味がひとつじゃなくて複数ある」ときに使う。学校の出席番号リストや、ショッピングカートの商品一覧をイメージするとわかりやすいよ。
③ コロン `:` ——「名前と値のペア」を結ぶ
`”name”: “山田太郎”` のコロンは「nameという項目の値は山田太郎ですよ」という意味。左側をキー(項目名)、右側をバリュー(値)と呼ぶよ。キーは必ずダブルクォート(`”`)で囲む。これJSONの絶対ルールだから超大事!
④ カンマ `,` ——「次の項目がありますよ」の区切り
項目と項目の間にはカンマを入れる。ただし最後の項目の後ろにはカンマをつけないのがJSONのルール。うっかり最後にカンマをつけると「エラー」になって動かなくなるから注意してね。これ初心者がよくハマるポイントだよ。
JSONで扱える「データの種類」を覚えよう
JSONでは6種類のデータを使えるよ。それぞれ見ていこう。
文字列(String)
ダブルクォートで囲んだ文字のこと。`”山田太郎”` や `”東京”` みたいに書く。必ずダブルクォート(”)を使うこと。シングルクォート(’)はJSONでは使えないよ。JavaScriptではシングルクォートもOKだから混同しやすいけど、JSONは厳密にダブルクォートのみ。
数値(Number)
数字はクォートで囲まない。`15` や `3.14` のように書く。`”15″` と書いてしまうと文字列になってしまって、計算に使えなくなるから気をつけて。「15歳」の15は数値、「部屋番号315」の315は文字列として扱うことが多いよ。
真偽値(Boolean)とnull
`true`(本当)と `false`(嘘)は小文字で書く。これも大文字にするとエラーになるよ。`null` は「値がない・不明」という意味の特殊な値。たとえばプロフィールの「ニックネーム」欄が未設定なら `”nickname”: null` と書く。
オブジェクトと配列の入れ子
JSONの強みはオブジェクトの中にオブジェクトや配列を入れられること。これを入れ子構造(ネスト)という。たとえば学校の情報の中に生徒リストを入れて、各生徒の中にさらに成績情報を入れて……という複雑なデータも表現できるんだよ。
{
"school": "〇〇中学校",
"students": [
{
"name": "山田太郎",
"grade": 2,
"scores": { "math": 85, "english": 72 }
},
{
"name": "佐藤花子",
"grade": 2,
"scores": { "math": 91, "english": 88 }
}
]
}
複雑に見えるかもしれないけど、波カッコと角カッコの対応関係を追っていけば読めるよ。
JSONが実際にどこで使われてるか——身近な例
「理論はわかったけど、実際どこで動いてるの?」と思うよね。身近な例をいくつか紹介するよ。
天気予報アプリ
スマホの天気アプリが「今日の天気」を表示するとき、裏側では気象データのサーバーにJSONでデータをもらいに行ってるんだ。サーバーから返ってくるデータはこんなイメージ。
{
"city": "東京",
"date": "2026-04-23",
"weather": "晴れ",
"temp_max": 22,
"temp_min": 14
}
アプリはこのJSONを受け取って「天気:晴れ」「最高気温:22℃」と画面に表示してるよ。JSONがなかったら、アプリとサーバーが「どんな形式でデータを送り合えばいいか」でバラバラになってしまって動かないんだ。
ゲームのセーブデータ
スマホゲームのセーブデータも、裏ではJSONで管理されていることが多い。プレイヤーのレベル・持ちアイテム・クリア済みステージ……これらをJSONで書き出してサーバーに保存しておけば、機種変更しても引き継ぎができるんだよ。
package.json——プログラムの「説明書」
JavaScriptの開発をすると必ず目にする `package.json` というファイル。これもJSONで書かれたファイルで、「このプロジェクトの名前・バージョン・使っているライブラリ一覧」が書かれてる。つまりプログラム自体の「プロフィールシート」みたいなものだよ。
ChatGPTなどのAI API
ChatGPTのAPIにメッセージを送るときも、JSONを使う。「役割:アシスタント、メッセージ:こんにちは」という情報をJSON形式で送って、返ってくる返答もJSONで受け取る。JSONを読めるようになると、AIサービスの仕組みがぐっとクリアに見えてくるよ。
JSONを書くときのよくあるミスと直し方
JSONは書き方がちょっとでも間違うとエラーになって動かなくなるよ。初心者がよくやるミスをまとめたよ。
ミス① キーをダブルクォートで囲まない
JavaScriptのオブジェクトは `{name: “田中”}` とキーをクォートなしで書けるんだけど、JSONでは必ずダブルクォートが必要。`{“name”: “田中”}` と書かないといけない。「JavaScriptっぽく書いたのにJSONパーサーでエラーが出る」という原因の多くがこれだよ。
ミス② 末尾にカンマをつける(トレイリングカンマ)
最後の項目の後ろにカンマをつけてしまうミス。JavaScriptやPythonのコードは末尾カンマが許容されてることも多いんだけど、JSONは厳密にNG。バリデーターでチェックするとすぐわかるよ。
ミス③ コメントを書く
JSONにはコメント(`// これは注釈` みたいな補足文)が書けない。JavaScriptのコード内でJSONっぽく書くときは注釈を入れられるけど、純粋なJSONファイルではコメントはエラーになるよ。設定ファイルにメモを残したいときはコメントが使えるJSONC(JSON with Comments)という派生形式を使う場合もあるよ。
JSONバリデーターを使おう
書いたJSONが正しいかどうかはJSONバリデーター(JSON Validator)というツールで確認できるよ。つまり「JSONの文法チェッカー」ということ。ブラウザで検索すると無料でチェックできるサイトがたくさんある。コピペするだけで「ここがおかしい」と教えてくれるから、ぜひ使ってみてね。プログラミングの開発環境(VS Codeなど)を使っていれば、リアルタイムでエラーを教えてくれる機能も入ってるよ。
整形(フォーマット)ツールも便利
受け取ったJSONが全部1行にまとまっていて読みにくいときは、JSONフォーマッターを使うと見やすくなる。つまり「読みやすく整えてくれるツール」ということだよ。インデント(字下げ)を自動でつけてくれるから、入れ子が深くなっても構造が一目でわかるようになるよ。これも無料のWebサービスがいっぱいある。
