ブログ
MacでJSONを整形してチェックする:APIレスポンスを読みやすくする
詰まったレスポンスを読みやすいJSONにし、構文エラーを調べ、オンライン整形サービスに送信せずに結果をコピーできます。
MacでコンパクトなJSONレスポンスを確認するには、JSONだけをFrsetのJSONツールに貼り付け、整形を選びます。もう一度コンパクトな形にしたい場合は圧縮します。どちらの操作でもJSONの構文はチェックされますが、データにAPIが求めるフィールドや値が含まれているかまでは確認できません。
周辺のログではなくレスポンス本文をコピーする
APIクライアントには、ステータスの説明、ヘッダー、レスポンス本文がまとめて表示されることがあります。整形ツールに必要なのはJSONの部分だけです。オブジェクトの前に「Response received:」のような行があったり、メッセージからコードフェンスごとコピーしたりすると、JSON自体が正しくても解析に失敗することがあります。
編集する前に、元のレスポンスを手元に残しておきましょう。たとえば、{"project":"demo","enabled":true,"items":[1,2]}は、操作の流れを確認するために使える小さな有効なオブジェクトです。整形すると、意図した値を変えずに構造を見やすくできます。
Frsetで整形または圧縮する
- Frsetの検索を開き、キーワードを変更していなければ、既定の
/jsonを使ってJSONを選択します。 - JSONの本文をツールの入力欄に貼り付けます。
- 読みやすいインデントを加えるにはFormat、不要な空白を取り除くにはMinifyを選びます。
- ツールを実行して結果を確認します。
- コピーした結果をエディタ、APIクライアント、作業メモに貼り付けます。
処理が成功すると、結果はFrsetの履歴に追加され、システムクリップボードにもコピーされます。利用プランのアクセス範囲と保存期間のルールに応じて、クリップボード管理から以前の結果に戻れます。ツールの利用上限もプランによって異なります。
JSONの整形はローカルで行われるため、AIプロバイダーやオンラインの整形サイトは必要ありません。レイアウトを変える際も、キーの順序、数値リテラル、文字列の内容は保持されます。圧縮で取り除かれるのは整形用の空白であり、文字列の値に含まれるスペースではありません。ファイル圧縮や暗号化とは異なります。
構文エラーを調べる
解析に失敗した場合は、ツールが自動で修復するはずだと考える前に、コピーした入力を確認しましょう。よくある原因は次のとおりです。
- カンマの不足、または対応しない波かっこ・角かっこ。
- JSONではキーや文字列に二重引用符が必要なのに、単一引用符を使っている。
- オブジェクトの最後の要素や配列の最後の要素の後ろにカンマがある。
- コメント、ログの接頭辞、HTMLのエラーページが入力に混ざっている。
- 文字列内の引用符や改行がエスケープされていない。
形式の定義はJSON仕様(RFC 8259)で確認できます。JavaScriptのオブジェクトリテラルや、コメントを許容する設定形式が、必ずしも有効なJSONとは限りません。元のデータを意識して修正してから、もう一度試してください。整形ツールが、値が欠けていた理由を推測することはありません。
読みやすさとデータの正しさを分けて考える
整形に成功したということは、入力を解析できたという意味です。識別子が実在すること、タイムスタンプの単位が正しいこと、フィールドが受け取り側APIの契約を満たすことまでは保証されません。アプリのスキーマや業務ルールに対する検証は、適切な開発ツールで行ってください。
値が文字列なのか数値なのかも確認しましょう。"0012"を12に変えると、解析できる状態のままでもデータの意味が変わります。日付フィールドに見慣れない整数がある場合は、単位とタイムゾーンを別途調べるためにタイムスタンプ変換ガイドをご覧ください。
同じ作業を繰り返すなら、大切なコピーに名前を付けるか、手入れしたサンプルをメモに保存しましょう。コードや設定のスニペットを保存する方法も参考になります。読みやすいレスポンスはデバッグのよい出発点ですが、元のリクエストとAPIの動作も引き続き重要です。