コンテンツへスキップ

{ } · 2 / 4 / tab · minify

JSON整形・検証ツール

JSON整形ツールは、詰めて書かれたJSONにインデントを加えます。60バイトの文書は、スペース2つで86バイト、スペース4つで102バイトになります。JSONを貼り付けると、整形または圧縮したテキスト、あるいは最初のエラーの行と列が表示されます。

処理はすべてこのタブ内で行われ、何もアップロードされません。パーサーはRFC 8259に従うため、コメント、シングルクォート、末尾のカンマ、引用符のないキーはエラーとして報告されます。

Scanned by NortonTM Safe Web

概要

価格
料金なし
アカウント
不要
規格
RFC 8259 (JSON)
上限
入力5 MB、ネスト512階層
出力
スペース2つ、スペース4つ、タブ、圧縮のいずれか。キーの並べ替えは任意
アップロード
なし — テキストはブラウザーのタブ内にとどまります

JSONのエラーと数値の精度

これらの数値は、このページが使うパーサーから得たものです。行と列は1から数えます。

壊れた文書で最初に見つかるエラー
文書理由コード行:列
{"a": 1,}trailing_comma1:8
{'a': 1}single_quotes1:2
[1, 2unexpected_end1:6
{"a": 01}bad_number1:8
{"a": "x\q"}bad_escape1:9
{"a": 1 "b": 2}missing_comma1:9
JSON.parseが丸める数値
書かれた数値JSON.parseが返す値
1234567890123456789012345678901234567000
90071992547409939007199254740992
1.00000000000000011
1E400Infinity

JSONを整形する手順

1

JSONを貼り付ける

最大5 MBのJSON文書を入力欄に入力または貼り付けます。サンプルが最初から入っているので、先に結果を確認できます。

2

出力を選ぶ

スペース2つ、スペース4つ、タブ、圧縮形式から選びます。チェックを入れると、すべてのオブジェクトのキーがコードユニット順に並べ替えられます。

3

コピーまたは修正

結果をコピーまたはダウンロードします。JSONに誤りがある場合は、行、列、理由がメッセージに表示され、エラーのある行にはキャレットで位置が示されます。

JSON整形ツールの仕組み

このページは、RFC 8259のJSON文法に対応した独自のパーサーでテキストを読み取り、選んだインデントで書き出します。パーサーがページの一部なので、同じ間違いに対してどのブラウザーでも同じメッセージが表示されます。組み込みのJSON.parseはChrome、Firefox、Safariでエラーの文言が異なり、行と列を示さないものもあります。

数値と文字列のエスケープは、入力したとおりに書き写されます。JSON.parseは12345678901234567890を12345678901234567000に変えてしまいます。JavaScriptの数値は64ビット浮動小数点数で、有効桁数が約15〜17桁だからです。このページは20桁すべてを保持し、数値が丸められる場合はそのことを知らせます。RFC 8259ではオブジェクトの名前は一意であるべきとされているため、重複したキーは保持したうえで報告されます。上限は入力5 MB、ネストの深さ512階層です。

JSON整形ツールの質問

JSONをオンラインで整形するには?

JSONを入力欄に貼り付けます。整形されたテキストがすぐに表示され、各階層のインデントはスペース2つ、スペース4つ、タブから選べます。60バイトのサンプルは、スペース2つで86バイト、スペース4つで102バイトになります。

「unexpected token」とはどういう意味で、エラーはどこですか?

その位置にJSONの文法で許されていない文字がパーサーに現れた、という意味です。このページでは理由、行、列が示されます。{"a": 1,}の場合は、1行目の8列目でtrailing_commaと報告されます。

JSONで末尾のカンマがエラーになるのはなぜですか?

RFC 8259の文法では、すべてのカンマの後に値が必要なため、[1, 2,]や{"a": 1,}は無効です。JavaScriptのオブジェクトリテラルは末尾のカンマを受け付けますが、JSONは受け付けません。最後のカンマを削除してください。

JSONにコメントやシングルクォートは使えますか?

いいえ。RFC 8259にコメントはなく、文字列とキーにはダブルクォートだけを使います。JSON5やJSONCなどの形式は両方を許しますが、別の形式であり、このページではエラーとして報告されます。

整形すると数値が変わりますか?

いいえ。数値とエスケープは入力したとおりに書き戻されます。JSON.parseなら12345678901234567890を12345678901234567000に丸めますが、このページは全桁を保持するので、整形で失われるものはありません。

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

いいえ。ページはブラウザーのタブ内で動作し、サーバーには何も送信しません。一度読み込めばオフラインでも動作します。入力の上限は5 MBです。