Skip to content
DocsAll
教程

JSONフォーマットガイド:バリデーション、圧縮、整形

Timi Tian · 公開日 2026年6月30日 · 更新日 2026年7月12日
JSONフォーマットデータ形式

JSONとは

JSON(JavaScript Object Notation)は軽量なデータ交換フォーマットです。フロントエンドとバックエンドの通信、設定ファイル、APIレスポンスはすべてJSONを使います。構造が明確で、人間が読め、機械が解析でき、現代の開発における事実上の標準です。

JSONの構文ルール

データ型

  • 文字列:ダブルクォートで囲む、例 "hello"
  • 数値:整数または浮動小数点、例 42、3.14
  • ブール値:true または false
  • ヌル値:null
  • 配列:角括弧で囲む、例 [1, 2, 3]
  • オブジェクト:波括弧で囲む、キーと値のペア、例 {"name": "Tom"}
  • ネスト:オブジェクトと配列は相互にネスト可能

基本ルール

  • キーはダブルクォート必須(シングルクォート不可)
  • 文字列はダブルクォート必須
  • 末尾のカンマ不可(最後の要素の後にカンマを置かない)
  • コメント不可
  • 最上位はオブジェクトまたは配列のみ

フォーマットの3つのニーズ

バリデーション

JSONの構文が正しいかチェックします。カンマの過不足、クォートの不一致はすべて解析失敗につながります。

整形(Pretty Print)

1行に圧縮されたJSONを、インデント付きの複数行フォーマットに展開し、人間が読みやすくします。

圧縮形:

{"name":"Tom","age":20,"tags":["a","b"]}

整形後:

{
  "name": "Tom",
  "age": 20,
  "tags": ["a", "b"]
}

圧縮(Minify)

整形フォーマットからすべてのスペースと改行を取り除き、1行に圧縮してサイズを削減します。送信や保存に使われます。

よくあるJSONエラー

クォートエラー

  • シングルクォート使用:JSONはダブルクォートのみ許可
  • クォートの閉じ忘れ
  • キー名のクォート忘れ

誤り:{'name': 'Tom'}(シングルクォート) 正解:{"name": "Tom"}

カンマエラー

  • 末尾カンマ:最後の要素の後に余分なカンマ
  • カンマ漏れ:要素間のカンマ忘れ

誤り:{"a": 1, "b": 2,}(末尾カンマ) 正解:{"a": 1, "b": 2}

データ型エラー

  • undefined使用(JSONにundefinedはない、nullを使う)
  • NaN / Infinity使用(JSONは非対応)
  • 関数、Dateオブジェクトは直接シリアライズ不可

エスケープエラー

文字列内の特殊文字はエスケープが必要:

  • クォート:"
  • バックスラッシュ:\
  • 改行:\n
  • タブ:\t
  • キャリッジリターン:\r

誤り:"He said "hello""(クォート未エスケープ) 正解:"He said "hello""

エンコードエラー

JSONはUTF-8エンコード必須です。他のエンコードでは文字化けや解析失敗の可能性があります。

ネストと階層

ネストの例

{
  "user": {
    "name": "Tom",
    "address": {
      "city": "北京",
      "zip": "100000"
    }
  },
  "orders": [
    {"id": 1, "items": ["A", "B"]},
    {"id": 2, "items": ["C"]}
  ]
}

インデント

  • 2スペースインデント:最も一般的
  • 4スペースインデント:よりゆったり
  • Tabインデント:一部のチームが使用

整形時はインデントスタイルを統一しましょう。

深いネスト

5階層を超えるネストは読みにくくなります。構造をフラット化するか分割することを検討しましょう。

JSONと他のフォーマット

JSON vs JSONL

  • JSON:ファイル全体が1つのJSON(通常はオブジェクトまたは配列)
  • JSONL(JSON Lines):1行が1つの独立したJSON、ログやストリーミングデータに適している

JSON vs JSON5

JSON5はJSONのスーパーセットで、以下をサポートします:

  • シングルクォート
  • 末尾カンマ
  • コメント
  • 16進数

ただしJSON5は標準JSONではなく、パーサーの互換性に制限があります。

JSON vs YAML

  • JSON:厳格な構文、機械に優しい
  • YAML:緩い構文(コメント、インデントによる階層をサポート)、人間に優しい
  • 設定ファイルにはYAMLがよく使われ、API通信にはJSONが使われます

JSON vs XML

  • JSON:軽量、タグのオーバーヘッドなし
  • XML:冗長なタグ、ただし属性や名前空間をサポート
  • 現代の開発ではJSONがXMLをほぼ代替しています

実践的なコツ

JSONのコピー

APIレスポンスやログからJSONをコピーし、フォーマットツールに貼り付けて整形し、読みやすくします。

JSONのデバッグ

APIがエラーを返した時、レスポンスJSONをフォーマットしてフィールドが正しいか確認します。

設定ファイル

設定ファイルをJSONで書き、フォーマット後に各フィールドの意味を注釈します(標準JSONはコメント非対応のため、JSONCや別ドキュメントを使用)。

データ変換

CSV to JSONやXML to JSONなどのシナリオでは、変換後にフォーマットして結果をバリデーションします。

CSV to JSONツールで表データをJSONにワンクリック変換できます。

フォーマットツールの使い方

バリデーション

JSONを貼り付けると、ツールが構文をチェックします。エラーがあれば場所と原因を指摘します。

整形

圧縮JSONを貼り付け、インデントを選び、整形をクリックすると、複数行フォーマットが出力されます。

圧縮

整形済みJSONを貼り付け、圧縮をクリックすると、1行で出力されます。

エスケープ

JSON文字列内の特殊文字をエスケープ、または逆に復元します。

DocsAllでJSONを処理

JSONにはエンコードと変換が伴います。関連ツールを使用:

ブラウザ上で処理、データはアップロードされません。

よくある質問

整形後に中国語が \uXXXX になる

一部のツールはデフォルトで中国語をエスケープします。中国語をそのまま表示するには、Unicodeエスケープオプションをオフにします。

大きなJSONが重い

数MBのJSONのフォーマットは重くなる可能性があります。コマンドラインツール(jqなど)を使うとより効率的です。

コメントはどうすれば?

標準JSONはコメントをサポートしません。コメントが必要な場合はJSONC、JSON5、またはYAMLを使います。

まとめ

JSONフォーマットは3つがポイントです。構文のバリデーション、読みやすさのための整形、送信のための圧縮。よくあるエラーはクォート、カンマ、エスケープです。JSONの処理にはDocsAllエンコード・デコードツールCSV to JSONツールを使いましょう。ブラウザ上で動作し、データが外部に漏れません。

T
Timi Tian 创始人 / 全栈工程师

DocsAll 创始人,10 年全栈开发经验,专注浏览器端文档处理技术与隐私保护架构。前新加坡科技公司技术负责人。