JSONとは?書き方・構文・よくあるエラーをやさしく解説する入門ガイド
JSONはWeb APIや設定ファイルで最もよく使われるデータ形式です。本記事では「JSONとは何か」から、オブジェクト・配列・データ型といった構文の基本、初心者がつまずきやすい末尾カンマなどのエラー、そして整形・検証・YAML変換・差分比較という実務での活用法までを、順を追ってやさしく解説します。
アプリ開発やAPI連携に触れると、必ずと言ってよいほど出会うのが「JSON」です。設定ファイル、Web APIのレスポンス、データの保存形式など、あらゆる場面で使われています。本記事では、JSONをはじめて学ぶ方に向けて、その正体と書き方、よくある落とし穴、実務での扱い方を解説します。
JSONとは何か
JSON(ジェイソン、JavaScript Object Notation)は、データを文字列として表現するための軽量なフォーマットです。名前の通りJavaScriptの記法をもとに生まれましたが、現在では言語を問わず広く使われる「共通語」になっており、ほぼすべての言語にJSONを読み書きする機能が備わっています。
JSONが好まれる理由は次の3点です。
- 人にも機械にも読みやすい:テキストなので、エディタで開けば人間が内容を把握でき、プログラムも簡単に解析できます。
- 言語に依存しない:特定のプログラミング言語に縛られず、システム間でのデータ交換に適しています。
- 構造を表現できる:単純な値だけでなく、入れ子になった階層構造や一覧を自然に表せます。
たとえば、ある利用者の情報は次のように書きます。
{"name": "山田太郎", "age": 30, "active": true}
このように「キー(名前)」と「値」をペアにして並べるのがJSONの基本です。XMLより記述量が少なく、CSVと違って階層を表せるため、現代のWeb開発における事実上の標準形式となっています。
基本構文:オブジェクトと配列
JSONの構造は、たった2つの入れ物で成り立っています。オブジェクトと配列です。この2つを理解すれば、どんなに複雑なJSONも読み解けます。
オブジェクト(波かっこ)
オブジェクトは { } で囲み、「キー」と「値」のペアを並べたものです。キーは必ずダブルクォートで囲んだ文字列にします。ペアどうしはカンマで区切ります。
{"id": 1, "title": "入門ガイド", "published": true}
ここで重要なのは、キーは 必ず "二重引用符" で囲む という点です。シングルクォートやクォートなしは、JSONでは許されていません。これはJavaScriptのオブジェクト記法との大きな違いで、初心者がよく混同する部分です。
配列(角かっこ)
配列は [ ] で囲み、値を順番に並べたものです。同じ種類の値を一覧として持ちたいときに使います。
["りんご", "みかん", "ぶどう"]
オブジェクトと配列は自由に入れ子にできます。たとえば「複数の利用者の一覧」は、オブジェクトを要素に持つ配列として表現します。
[{"name": "佐藤", "age": 25}, {"name": "鈴木", "age": 40}]
実際のAPIレスポンスは、この入れ子が何層にも重なります。階層が深くなると目で追うのが難しくなるため、後述する整形ツールが役立ちます。
JSONで使えるデータ型
JSONの値として使えるのは、次の6種類だけです。種類が限られているからこそ、シンプルで扱いやすいのです。
| 型 | 書き方の例 | 説明 |
|---|---|---|
| 文字列 | "こんにちは" | 必ずダブルクォートで囲む |
| 数値 | 30、3.14、-5 | クォートで囲まない。整数も小数も可 |
| 真偽値 | true / false | 小文字で書く。クォート不要 |
| null | null | 「値がない」ことを表す |
| オブジェクト | { ... } | キーと値のペアの集まり |
| 配列 | [ ... ] | 値の並び |
注意したいのは、数値や真偽値はクォートで囲まない点です。"30" は文字列、30 は数値であり、両者は別物として扱われます。また、JavaScriptにある undefined や関数、日付型はJSONにはありません。日付は通常、文字列(例:"2026-06-28")として表現します。コメント(// や /* */)も書けない点も覚えておきましょう。
よくある構文エラー
JSONは構文に厳格で、ほんの小さなミスでも「読み込めない」エラーになります。初心者がつまずきやすい代表例を押さえておきましょう。
- 末尾カンマ(トレイリングカンマ):最後の要素のうしろにカンマを残すミス。{"a": 1, "b": 2,} はエラーです。最後の要素にはカンマを付けません。
- キーをクォートで囲んでいない:{name: "太郎"} は不正。正しくは {"name": "太郎"} です。
- シングルクォートの使用:{'name': 'A'} は不正。JSONではダブルクォートのみ有効です。
- かっこの閉じ忘れ・対応ミス:{ } や [ ] の数が合っていないケース。階層が深いほど起こりがちです。
- コメントの混入:JSONはコメント非対応です。設定ファイルで書きたくなりますが、標準JSONでは構文エラーになります。
こうしたエラーは、目視だけで見つけるのは大変です。JSON整形ツールに貼り付ければ、構文が正しいかを即座に検証し、どこでエラーが起きているかを教えてくれます。同時に、読みやすいインデント付きに整形してくれるため、入れ子の対応関係も一目で確認できます。すべてブラウザ内で処理されるため、機密データを貼り付けても外部に送信される心配はありません。
整形・検証・変換・比較の使いどころ
JSONを実務で扱うとき、よく必要になる作業は決まっています。それぞれに適したツールを知っておくと作業効率が大きく変わります。
整形(フォーマット)と検証
APIから返ってくるJSONは、改行のない1行の状態(ミニファイ)であることが少なくありません。これを人が読める形に直すのが整形です。JSON整形ツールは、改行とインデントを付けて見やすくするだけでなく、不要な空白を削って最小化することもできます。あわせて構文チェックも行うため、「とりあえず貼って正しさを確かめる」用途にも最適です。
YAMLへの変換
設定ファイルの世界では、より人が書きやすいYAML形式もよく使われます。JSONとYAMLは表現できる構造がほぼ同じなので、相互に変換できます。JSON⇔YAML変換ツールを使えば、APIで受け取ったJSONをYAMLの設定ファイルに作り変えたり、逆にYAMLをJSONに戻したりが一瞬で行えます。記法の違いに悩む時間を節約できます。
差分の比較
「変更前と変更後で、どの値が変わったのか」を確認したい場面はよくあります。2つのJSONを目で見比べるのは骨が折れますが、JSON差分ツールを使えば、追加・削除・変更された箇所だけをハイライトして示してくれます。APIのレスポンス比較や設定変更のレビューに重宝します。
実務で役立つ書き方のコツ
最後に、JSONを扱うときに役立つ実践的なポイントをまとめます。
- キー名は一貫した命名規則で:camelCase(userName)かsnake_case(user_name)のどちらかに統一すると後の処理が楽になります。
- 文字コードはUTF-8で:日本語を含む場合でもUTF-8で保存すれば文字化けを防げます。
- 機密情報はブラウザ完結型ツールで:パスワードや個人情報を含むJSONは、データを外部送信しないツールを選ぶと安心です。
- 大きなJSONはまず整形:階層を可視化してから読むほうが理解が早まります。
- コメントが必要なら別形式を検討:標準JSONはコメント不可なので、注釈が必要な設定にはYAMLなども選択肢になります。
JSONは覚えることが少ないわりに応用範囲が非常に広い形式です。オブジェクトと配列、6つのデータ型、そして末尾カンマなどの基本ルールさえ押さえれば、APIや設定ファイルを自信を持って読み書きできるようになります。まずは手元のJSONをJSON整形ツールに貼って、構造を眺めるところから始めてみてください。
よくある質問
JSONとは何の略ですか?
JSONは「JavaScript Object Notation」の略で、データを文字列として表現する軽量なフォーマットです。JavaScript由来ですが、現在はあらゆるプログラミング言語で読み書きでき、システム間のデータ交換における事実上の標準になっています。
JSONとJavaScriptのオブジェクトは同じものですか?
似ていますが別物です。JSONはキーを必ずダブルクォートで囲む、コメントが書けない、使えるデータ型が限られているなど、より厳格なルールがあります。JavaScriptのオブジェクト記法より制約が多いと考えてください。
JSONでよくあるエラーは何ですか?
最も多いのは末尾カンマ(最後の要素のうしろにカンマを残す)、キーをクォートで囲み忘れる、シングルクォートを使う、かっこの閉じ忘れ、コメントの混入です。JSON整形ツールに貼り付ければエラー箇所をすぐ特定できます。
JSONにコメントは書けますか?
標準のJSONではコメントを書けません。// や /* */ を入れると構文エラーになります。注釈を残したい設定ファイルでは、コメントが書けるYAMLなど別の形式を選ぶ方法もあります。
JSONをこのサイトで扱うとデータは送信されますか?
WAZA TOOLSのJSON整形・JSON⇔YAML変換・JSON差分の各ツールはすべてブラウザ内で処理され、貼り付けた内容がサーバーに送信・保存されることはありません。機密データでも安心してご利用いただけます。