記事にPRを含む場合があります

JSON整形ツール|数値を変えずに改行・圧縮・構文チェック

ツール

JSONを貼り付けて「整形する」を押すと、改行と字下げを付けて読みやすく整えられます。1行への圧縮と構文チェックにも対応した無料ツールです。長い整数や小数の表記、キーの並び順を保持するため、APIの応答やJSONファイルの確認に使えます。

JSON整形ツール

長い整数・小数の表記やキーの順序を保ったまま、JSONを整形します。

0文字
0文字
ツールを読み込み中です。表示が変わらない場合、JavaScriptが実行できていません。

本ツールの処理はブラウザ内で完結します。認証情報・個人情報は入力前に伏せてください。

入力後に「整形する」「圧縮する」「構文チェック」から選んで実行します。圧縮すると、文字列の外側の空白や改行を取り除いて1行にまとまります。整形・圧縮の結果は、コピーまたは .json ファイルとして保存できます。

字下げは2スペース・4スペース・タブから選べます。Macでは ⌘ + Enter、Windowsでは Ctrl + Enter でも整形できます。結果を書き換える場合は「結果を入力に戻す」を押して編集してください。

「.jsonファイルを開く」では、UTF-8のファイルを読み込めます。文字コードのエラーが出る場合は、エディターでUTF-8に保存し直してください。「サンプル」を押すと、長い整数や小数を含むデータの整形を試せます。

たとえば、次の1行のJSONは、

{"id":12345678901234567890,"name":"山田太郎","price":1.2300}

次のように整形されます。数値の桁や 1.2300 の末尾のゼロも残ります。

{
  "id": 12345678901234567890,
  "name": "山田太郎",
  "price": 1.2300
}

整形・検証はブラウザ内で行い、ツール自体に入力内容の送信・自動保存機能はありません。APIキー、パスワード、個人情報は入力前に削除・マスクしてください。

JSONの構文エラーと直し方

構文に誤りがある場合は、原因とエラーを検出した行・文字位置を表示します。示された位置の直前に原因があることもあるため、前後のカンマ・引用符・括弧を確認してください。

よくある誤り誤った例正しい例
最後のカンマが余分{"a":1,}{"a":1}
キーに引用符がない{name:"山田"}{"name":"山田"}
シングルクォートを使用{'a':1}{"a":1}
区切りのカンマがない{"a":1 "b":2}{"a":1,"b":2}
True を大文字で記述{"active":True}{"active":true}
数値に先頭ゼロがある{"count":0123}{"count":123}

IDや商品コードで先頭のゼロを残したい場合は、{"id":"0123"} のように文字列にします。文字列の外側にある全角スペースは構文エラーになりますが、{"name":"山田 太郎"} のような文字列内の全角スペースは使えます。

Pythonの辞書をそのままコピーすると、None や True、シングルクォートなどが原因でエラーになることがあります。JSONとして出力してから貼り付けてください。ChatGPTなどの回答を使う場合は、前後のMarkdownコードブロック記号(バッククォート3つ)を除きます。

対象は標準JSONです。コメントを含むJSONCや、一部の設定ファイルで使える末尾カンマには対応していません。1行に1件のJSONを並べる「JSON Lines」は、1件ずつ入力してください。

同じオブジェクト内に同名のキーが複数ある場合は、重複したキー名と場所を警告します。たとえば {"price":100,"price":200} は、読み込むプログラムによって一方の値が上書きされるため、意図した内容を確認してください。本ツールでは両方の値を残して整形します。

構文チェックの対象はJSONの文法です。APIが要求する項目名や値の型は、そのAPIの仕様と照合してください。

数値やキーの順序を変えずに整形できる理由

JSONをJavaScriptの JSON.parse() で読み込み、JSON.stringify() で書き出す方法では、元の表記が変わることがあります。たとえば、次のような違いが生じます。

入力した値JavaScriptで読み込んで書き出した例
1234567890123456789012345678901234567000
90071992547409939007199254740992
1.23001.23
1e31000

JavaScriptの通常の数値型 Number が安全に扱える整数の範囲は、−9007199254740991〜9007199254740991です。この範囲を超える整数は、近い値に丸められることがあります。また、小数の末尾のゼロや指数表記は、読み込み・書き出しによって表記が変わります。

本ツールは数値の表記をそのまま保持し、JSONの構文を検証しながら文字列の外側の改行・空白を調整します。文字列内の空白や、\u3042 と「あ」の表記の違いも残ります。

たとえば {"b":1,"2":2,"1":3} を JSON.parse() と JSON.stringify() で処理すると、{"1":3,"2":2,"b":1} になります。本ツールでは入力のキー順を保つため、元データと見比べやすくなります。JSONのオブジェクトは仕様上、順序に依存しないデータとして扱います。

整形後のJSONを別のプログラムに渡した場合、数値の精度は受け取り側の処理によって決まります。長いIDなどを文字列で扱う設計なら、作成時から "12345678901234567890" のように引用符で囲むと桁を保持できます。


参考資料

タイトルとURLをコピーしました