SomeeLab.tools

JSON 整形・検証

JSONの整形、圧縮、構文チェックができます。壊れている箇所は行番号で示します。登録不要、ブラウザ上で動きます。

どこで壊れたかを見つける

貼り付けたJSONが通らないと、パーサーが止まった行と桁が表示されます。その位置をそのまま疑うより、ひとつ上の行を先に見てください。カンマの過不足は次のトークンに進んで初めて分かるため、報告される位置は本当の原因の少し後ろになります。

引っかかる原因はだいたい決まっています。

  • 末尾のカンマ。 JavaScriptのオブジェクトでは許されますが、JSONではエラーです。
  • シングルクォート。 'name' はJSONの文字列ではありません。キーも値もダブルクォートで囲みます。
  • コメント。 ///* */ を含む設定ファイルはJSONではなくJSONCです。
  • クォートなしのキー。 {name: "値"} はJavaScriptの書き方です。
  • NaNInfinity 数値に見えますがJSONの仕様にはありません。ログからのコピーで紛れ込みます。

圧縮を使う場面

圧縮すると空白がすべて取り除かれ、1行になります。設定値として埋め込むとき、環境変数ひとつに収めるとき、curlのリクエストボディに貼るときはこの形が必要です。ファイルサイズも減りますが、サーバーは応答をgzipで圧縮して送るので、容量そのものが理由になることはあまりありません。

リポジトリに入るファイルならインデントを残してください。圧縮したJSONは1文字の変更でも差分がファイル全体になり、レビューできなくなります。

キーの順序とインデント

整形してもキーの順序は元のままです。仕様上、オブジェクトのキー順に意味はないとされていますが、実際にはほとんどのパーサーが入力順を保つため、このツールも並べ替えません。

インデントはスペース2つが最も一般的で、4つはPython系のツールと一緒に使われます。タブは数バイト節約できますが、エディタの設定で見た目の幅が変わります。共有リポジトリなら、すでに使われている方に合わせます。

トークンや本番データを貼るとき

入力はどこにも送信されません。ブラウザの中で解析して文字列に戻すだけなので、顧客情報を含む応答やアクセストークンを貼っても端末から出ません。仕組みに関係なく社外ツールの利用を禁じている職場もあるので、本番のデータなら先に規定を確認してください。