JSON整形
API開発・デバッグでJSONを見やすく整形するツール
JSONを貼ると整形(インデント2/4スペース)と圧縮(Minify)をワンクリックで切り替え。構文エラーは行・列番号で位置を特定します。APIレスポンスのデバッグ、設定ファイルの可読化、ログJSONの解析に。
APIレスポンスのデバッグや、設定ファイルの整形・検証に使えます。
JSON整形の豆知識・コツ
- JSONではキーと文字列にダブルクォートが必須(シングルクォート不可)
- 末尾カンマ(trailing comma)はJSON仕様ではエラー
- JSONの最大ネスト深度はパーサーに依存するが一般に数百階層まで対応
JSON整形の使い方
JSONを入力
テキストエリアにJSONを貼り付けます。
自動整形
貼り付けと同時に整形結果が表示されます。エラーがあれば赤字で表示されます。
コピー・圧縮
整形結果をコピーしたり、Minifyで圧縮することもできます。
JSONとは?書き方の基本ルール
JSON(JavaScript Object Notation)は、データをテキストで表すための書式です。WebのAPIがサーバーからデータを返すときや、アプリの設定ファイルなどで広く使われています。人が読めて機械も解釈しやすいのが特徴です。
JSONの部品は、キーと値を波かっこ{ }で囲んだオブジェクトと、値を角かっこ[ ]で並べた配列が基本です。値として使えるのは、文字列、数値、true・false、null、そしてオブジェクトと配列の6種類で、これらを入れ子にして複雑な構造を表します。
オブジェクトの各要素は「キー: 値」の形でカンマ区切りにします。日付や時刻を表す専用の型はないため、文字列として書くのが一般的です。値の種類ごとの書き方は次のとおりです。
- 文字列: "東京"(ダブルクォートで囲む)
- 数値: 100、-3.5、1.2e3(クォートなし、先頭の0や16進数は不可)
- 真偽値・null: true、false、null(すべて小文字)
JSONの構文エラーの原因と直し方
JSONの解析に失敗するときは、まずエラーメッセージを確認します。ブラウザが出すメッセージには、問題のある文字や位置(行・列、または先頭からの文字数)が含まれることが多く、そのあたりを見直すのが近道です。
よくある原因は、コメント(// や /* */)が入っている、キーがクォートで囲まれていない、undefinedやNaNなど使えない値がある、文字列の中に改行やタブがそのまま入っている、といったものです。JSONにはコメントを書く仕組みがないため、設定ファイルの説明はキー名で工夫するか別のファイルに書きます。
ログやプログラムの出力からコピーしたときは、前後に余分な文字が付いていることもあります。先頭が { か [ で始まり、末尾が } か ] で終わっているか、かっこの数が対応しているかを確認してください。整形して読みやすくすると、閉じ忘れの場所が見つけやすくなります。
JSONのインデントは2スペースと4スペースどちら?
インデントは、入れ子の深さを字下げで表す空白のことです。JSONの意味には影響せず、どちらを選んでも解析結果は同じになります。読みやすさと、チームやプロジェクトの慣習で決めるのが一般的です。
Web開発やJavaScript周辺では2スペースが多数派で、多くの自動整形ツールの初期値も2スペースです。階層が深いJSONでも横幅を取りすぎないという利点があります。4スペースは字下げがはっきりして構造を追いやすく、Python系のプロジェクトや設定ファイルで好まれます。
タブ文字を使う流儀もありますが、表示環境によって幅が変わるため、共有するJSONではスペースの方が無難です。このツールでは2スペースと4スペースを切り替えられ、整形結果はボタンひとつでコピーできます。
JSONとCSV・XML・YAMLの違い
CSVは表形式のデータをカンマ区切りで並べた形式で、表計算ソフトで開きやすい反面、入れ子構造や配列を表現できません。一覧データのやり取りにはCSV、階層のあるデータにはJSONという使い分けが一般的です。
XMLはタグで要素を囲む形式で、JSONより古くから使われています。属性やスキーマによる厳密な検証ができる一方、同じ内容でも記述量が多くなりがちです。現在のWeb APIでは、軽量なJSONが主流になっています。
YAMLは設定ファイルでよく使われる形式で、インデントで階層を表し、クォートやかっこが少なくて済みます。JSONはYAMLの一部として扱える関係にあり、YAMLのパーサーは多くの場合JSONもそのまま読み込めます。
JSON整形のよくある質問
JSONデータはサーバーに送信されますか?
いいえ、すべてブラウザ上で処理されます。入力したJSONは外部に一切送信されません。
大きなJSONファイルも処理できますか?
ブラウザのメモリの範囲内で処理可能です。数MB程度のJSONであれば問題なく整形できます。
Minify(圧縮)とは何ですか?
インデントや改行を削除して、JSONを最小サイズにする処理です。APIのリクエストボディなどで使います。