tigtools

JSONフォーマッター

JSONを貼り付けて、読みやすく整形または圧縮できます。無効なJSONの場合は、問題の内容と場所が表示されます。データはブラウザー内にとどまります。

ブラウザー内で動作 登録不要

インデント

使い方

  1. 入力欄にJSONを貼り付けるか、[例を試す]を押します。
  2. インデント(2スペース、4スペース、またはタブ)を選び、必要に応じてキーをアルファベット順に並べ替えます。
  3. 右側で整形結果を確認します。代わりに[圧縮]を押すと、すべての空白が削除されます。
  4. JSONに構文エラーがある場合は、表示された行と列を確認して修正し、結果をコピーするか、.jsonファイルとしてダウンロードします。

仕組み

入力したテキストをブラウザー内蔵のJSONパーサーで解析し、指定したインデントで書き直します。そのため、出力は常に有効なJSONで、インデントも統一されます。圧縮すると、同じデータを空白や改行なしで出力できます。ネットワーク経由での送信や設定値への保存に適した、最小サイズの形式です。

入力が有効なJSONでない場合は、厳密なチェッカーが最初の問題を検出し、行と列、およびよくある間違いについての簡潔な説明を表示します。末尾のカンマ、シングルクォート、引用符のないキー、コメント、NaNやundefinedなど、JavaScriptには存在してもJSONでは使えない値が対象です。ブラウザーごとにJSONエラーの表現が異なるため、位置はブラウザーのエラーメッセージからではなく、このツールで計算しています。

再フォーマットの制限にもご注意ください。数値は倍精度浮動小数点数として保存されるため、9,007,199,254,740,991(2^53 − 1)を超える整数(データベースIDなど)は精度が失われます。たとえば、9007199254740993は9007199254740992になります。このようなIDは文字列として保存してください。同じキーがオブジェクト内に複数ある場合は、最後の値だけが残ります。整数に見えるキー("1"、"20")は、並べ替えの有無にかかわらず、JavaScriptによって常にほかのキーより先に配置されます。数メガバイトまでの入力に対応しています。約300,000文字を超えると入力中の自動整形は停止し、入力の反応性を保つため、代わりに[整形]を押して実行します。

使用例

APIレスポンスを読みやすくする

REST APIが、{"user":{"id":7,"tags":["a","b"]}}のような1行のレスポンスを返します。2スペースで整形すると、各キーが別々の行に配置され、tags配列も字下げされるため、構造をひと目で確認できます。

2つの設定ファイルを比較する

2つのJSON設定ファイルに同じ設定が異なる順序で並んでいます。「キーをA〜Zで並べ替え」をオンにして両方を整形すると、出力の順序が揃い、テキスト差分には実際の違いだけが表示されます。

誤ったカンマを見つける

手作業で編集したpackage.jsonの読み込みに失敗します。貼り付けると、14行目の5列目に「末尾のカンマ」と表示され、最後の依存関係の後にあるカンマが示されます。

よくある質問

整形後に大きな数値が変わったのはなぜですか?

ブラウザーのJSONパーサーは数値を64ビット浮動小数点数として保存するため、整数を正確に表現できるのは9,007,199,254,740,991までです。それより大きい整数は、表現可能な最も近い値に丸められます。データに64ビットIDが含まれる場合は、文字列として送信してください。

コメントや末尾のカンマがあるJSON(JSON5、JSONC)を整形できますか?

いいえ。このツールはJSON標準(RFC 8259)に厳密に従い、コメントや末尾のカンマがある場合は位置とともにエラーを表示します。これらを削除してください。ほとんどのプログラミング言語のJSONパーサーも同様に処理します。

キーを並べ替えるとデータは変わりますか?

値は変わらず、オブジェクト内のキーの順序だけが変わります。JSONではオブジェクトの順序は定義されていないため、結果は元のデータと同等です。配列は順序に意味があるため、並べ替えません。

どのくらいの大きさのファイルを整形できますか?

現在のデスクトップブラウザーでは、数メガバイトのファイルを処理できます。約300,000文字を超える入力では、キー入力のたびに整形する代わりに、[整形]または[圧縮]を押すまで処理を待ちます。非常に大きな出力は、スマートフォンでテキスト欄をスクロールする際に動作が遅くなることがあります。

JSONはどこかにアップロードされますか?

いいえ。解析と整形はJavaScriptを使ってブラウザー内で行われます。テキストがサーバーに送信されたり、保存されたりすることはありません。

プライバシー

JSONの解析と整形はブラウザー内でのみ行われます。アップロード、ログ記録、保存はされず、分析にも使用されません。