このツールについて
API レスポンスやログのペイロードは、たいてい 1 行に圧縮された状態で届きます。整形すれば、アサーションやバグレポートを書くときにフィールド名、ネスト、値をずっと確認しやすくなります。このツールはブラウザ標準の JSON パーサーで入力を解析するため、受け付ける内容はテストコードの JSON.parse とまったく同じです。データはアップロードされず、最後の入力は利便性のためブラウザのローカルストレージに保存されます。
使い方
- 入力パネルに JSON を貼り付けるか、「Load sample」(サンプルを読み込む)をクリックします。
- インデントの形式を選びます。2 つのペイロードを比較しやすくしたい場合は、キーをアルファベット順に並べ替えることもできます。
- 整形結果をコピーまたはダウンロードします。入力が不正な場合は、修正すべき行と列がエラーに表示されます。
よくある JSON 構文エラーの直し方
「JSON が不正」という報告のほとんどは、手書きのペイロードや JavaScript からコピーしたデータが原因です。代表的な原因と対処法は次のとおりです。
{"a": 1,}や[1, 2,]のように最後の要素の後にカンマがある:最後のカンマを削除します。{'a': 1}のように文字列やキーがシングルクォートで囲まれている:JSON ではダブルクォートしか使えません。{a: 1}のようにキーがクォートされていない:キーはすべてダブルクォートで囲んだ文字列である必要があります。- コメント(
//や/* */):JSON にはコメント構文がありません。削除するか、コメント付きの設定は JSONC や JSON5 として明示的に読み込むツールで扱います。 - 値に
NaN、Infinity、undefinedを使っている:これらは JSON ではありません。null、数値、文字列を使います。 - 文字列の中に生の改行やタブがある:
\nや\tとしてエスケープします。 - NDJSON のログ 2 行など、2 つのドキュメントをまとめて貼り付けている:1 行ずつ整形します。
テストコードで JSON を整形出力する
テストレポート内のペイロードが読みやすければ、失敗の原因をずっと早く突き止められます。JavaScript や TypeScript では JSON.stringify(value, null, 2) で 2 スペースのインデントになります。Playwright では testInfo.attach('response', { body: JSON.stringify(json, null, 2), contentType: 'application/json' }) で整形済みのボディをレポートに添付できます。
Java の Jackson では mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj)、Python では json.dumps(obj, indent=2, sort_keys=True) を使います。コマンドラインでは jq . response.json でファイルを整形し、色付きで表示できます。
大きな数値は精度が失われる
JSON 自体には数値の大きさの上限はありませんが、JavaScript はすべての数値を 64 ビット浮動小数点数として解析します。一部のデータベース ID のように 9,007,199,254,740,991(2^53 − 1)を超える整数は、黙って丸められます。このツールは JSON.parse を使っているため、そのような ID は出力でも丸められ、ブラウザベースのテストコードでも同じことが起こります。大きな ID を返す API は文字列として送り、テストでも文字列として比較すべきです。
JSON整形ツール のよくある質問
JSON整形ツールとは何ですか?
JSON整形ツール(フォーマッター、ビューティファイア)は、圧縮された、あるいは乱雑な JSON を、一貫したインデントと改行で出力し直して構造を読みやすくするツールです。変更されるのは空白だけで、データは変わりません。テスターは、圧縮された API レスポンスを読む、ペイロードを比較する、きれいな例をバグレポートに貼るといった用途で使います。このツールは JSON の圧縮やキーの並べ替えにも対応し、ブラウザ標準のパーサーを使うため、JSON.parse が受け付けるものをそのまま受け付けます。
オンラインで JSON を整形するにはどうすればよいですか?
上の入力パネルに JSON を貼り付けるか、「Load sample」(サンプルを読み込む)をクリックします。正しい JSON は、選んだインデント(2 スペース、4 スペース、タブ)ですぐに整形され、結果をコピーできます。入力が不正な場合は、パーサーのエラーと解析が止まった行・列が表示されます。整形はすべてブラウザ内で行われるため、テストデータを含む API レスポンスも安心して貼り付けられます。
JSON を検証するにはどうすればよいですか?
JSON の検証とは、キーと文字列がダブルクォートで囲まれている、末尾カンマがない、コメントがない、括弧が正しく対応しているといった構文ルールを満たしているか確認することです。整形ツールは正しい JSON に対してのみ出力を生成するため、ここに貼り付けるだけで自動的に検証されます。正しい JSON が必要なフィールドや型も備えているかを確認するには、JSON Schema バリデーターなどによるスキーマ検証を使います。コードでは、JavaScript の JSON.parse や Python の json.loads が不正な入力に対して例外を投げます。
JSON ファイルのエラー箇所を見つけるには?
内容をここに貼り付けて、表示された行と列を確認します。パーサーは処理を続けられなくなった位置で止まるため、本当の誤りはその少し手前にあることがよくあります。プロパティ間のカンマ抜け、閉じていないクォートや括弧、末尾カンマ、ダブルクォートの代わりのシングルクォートなどです。1 つのミスが他のミスを隠すことがあるので、最初のエラーを直してから再度確認してください。大きなファイルには、エラー報告に特化した JSON バリデーターが便利です。
JSON の整形と検証の違いは何ですか?
整形は、インデント、改行、必要に応じてキーの順序など、JSON の見た目をデータを変えずに変更することです。検証は、そのテキストがそもそも正しい JSON かどうかを確認することで、スキーマ検証はさらに進んで、正しい JSON が期待どおりのフィールド・型・値を持っているかを確認します。整形ツールはまず JSON を解析する必要があるため副次的に構文を検証しますが、price が文字列ではなく数値であるべきだ、といったことまでは判断できません。
無料のオンライン JSON整形ツールはありますか?
はい、このツールです。SDETRole の JSON整形ツールは無料・登録不要で、すべてブラウザ内で動作するため、貼り付けた内容がアップロードされることはありません(ブラウザの「ネットワーク」タブで確認できます)。JSON の整形・圧縮・検証ができ、構文エラーの行と列を表示します。関連する無料ツールとして、ペイロード比較の JSON 差分チェッカー、値を抽出する JSONPath テスター、JSON→CSV 変換ツールもあります。
末尾カンマやシングルクォートがあると JSON が失敗するのはなぜですか?
厳密な JSON(RFC 8259)では、末尾カンマ、シングルクォートの文字列、コメント、クォートなしのキーは使えません。これらは JavaScript のオブジェクトリテラルの機能です。削除するか、API の担当者に正しい JSON を返すよう依頼してください。
キーを並べ替えると JSON の意味は変わりますか?
いいえ。JSON ではオブジェクトのキーの順序に意味はないため、比較のために並べ替えても安全です。配列の順序には意味があるので、変更されることはありません。