使い方
- JSON を貼り付けるか、ファイルを開くか、サンプルをお試しください。
- 設定を調整します。結果は入力に応じて更新されます。
- 整形した結果をコピーまたはダウンロードします。
JSON を知る
JSON は、構造化データを交換するためのテキスト形式です。API のレスポンス、設定ファイル、エクスポートしたレコードなどでよく使われます。値の型が少数に絞られているため、異なるプログラミング言語の間でデータを受け渡すのに適しています。
整形すると、その構造を確認しやすくなります。インデントで値のまとまりがわかり、改行によってネストしたレコードを追いやすくなります。こうしたレイアウトの違いは、有効な文書が表すデータを変えません。
値と構造
JSON 文書は 1 つの値を含みます。ルートの値はオブジェクトや配列だけでなく、文字列、数値、真偽値、null でも有効です。オブジェクトは文字列の名前と値を対応づけ、配列は意味のある順序で値を保持します。どちらもネストできます。
| 型 | 例 | 意味 |
|---|---|---|
| オブジェクト | {"name": "Ada"} | 波括弧の中にある、名前付きのプロパティ。 |
| 配列 | ["red", "blue"] | 角括弧の中にある、順序付きの値の並び。 |
| 文字列 | "Hello, world" | 二重引用符で囲んだテキスト。 |
| 数値 | -12.5e2 | 指数部を付けることもできる 10 進数。 |
| 真偽値 | true / false | 2 つの論理値のいずれか。 |
| null 値 | null | プロパティの省略ではなく、明示的な null 値。 |
押さえておきたい構文
プロパティ名と文字列には二重引用符を使います。名前と値はコロンで区切り、オブジェクトのメンバーと配列の要素はカンマで区切ります。最後のメンバーや要素の後にカンマを付けないでください。コメント、単一引用符、JavaScript の式は、厳密な JSON には含まれません。
リテラルの true、false、null は小文字で記述します。数値は 10 進表記で、マイナス記号、小数部、指数部を付けられます。先頭のゼロ、先頭のプラス記号、NaN、Infinity は無効です。文字列内の引用符、バックスラッシュ、制御文字はエスケープします。改行は \n などのエスケープ表記が必要です。
確実にデータを交換するには、オブジェクトの名前を一意にしてください。同じ名前が繰り返されると、読み取るソフトウェアによって保持される値が異なることがあります。フォーマッターは重複を報告し、そのまま保持するので、対処方法は自分で判断できます。構文チェックだけでは、API の契約や JSON Schema への適合性は確認できません。
整形で保持されるもの
DevToolsy は入力を検証し、元のトークンの周囲にある空白を調整します。900719925474099312345、19.9900、1e+400、-0 などの数値テキストと、元の文字列エスケープを保持します。これにより、数値を JavaScript の浮動小数点値として解析し、再シリアライズする際の丸めを避けられます。結果を読み取るアプリケーションは、独自の数値精度に従います。
インデント、LF または CRLF の改行コード、末尾の改行は、出力形式の設定です。「キーを並べ替え」は独立した任意の変更で、デコードした名前を大文字と小文字を区別する一定の方法で比較し、オブジェクトのメンバーを再帰的に並べ替えます。配列の順序と、重複する名前同士の相対的な順序は保持します。読みやすさや差分確認のための機能であり、暗号署名用の正規化方式ではありません。
{"name":"Ada","roles":["developer","reviewer"],"active":true}{
"name": "Ada",
"roles": [
"developer",
"reviewer"
],
"active": true
}インデントは見た目を変えます。プロパティ名、値、配列の順序は変わりません。
UTF-8 入力は最大 5 MiB、出力は最大 20 MiB、ネストは最大 128 階層、走査するトークンは最大 250,000 個、実行時間は 1 回につき最大 10 秒です。大きな文書には、より高性能なデバイスが必要になる場合があります。
よくある質問
自動整形で入力は変わりますか?
いいえ。入力が少し止まると読み取り専用の結果を更新し、入力した内容はそのままにします。自動整形は初めから有効です。無効にすると、「JSON を整形」または Ctrl/⌘ + Enter で手動実行できます。
JSON を入力している途中はどうなりますか?
編集中も、直近の有効な結果を表示し続けます。現在の入力と設定から有効な結果が得られるまで、コピーとダウンロードは無効になります。エラーを選ぶと入力の該当箇所に移動できます。
大きな数値の丸めや文字列エスケープの変更は起きますか?
いいえ。元の数値トークンと文字列のエスケープ表記を保持します。長い整数、小数末尾のゼロ、指数表記、負のゼロもそのままです。他のアプリケーションでは、これらの数値を異なる精度で解釈する場合があります。
キーの並べ替えで配列も並び替わりますか?
いいえ。キーの並べ替えはオブジェクトにだけ再帰的に適用します。配列の順序と、重複する名前同士の相対的な順序は保持します。初期設定では並べ替えは無効です。
コメントや末尾のカンマを修正できますか?
厳密な JSON を受け付け、修正方法を推測せずに無効な構文を報告します。コメント、単一引用符の文字列、引用符のないキー、末尾のカンマは、入力側で修正してください。
JSON Beautifier と JSON Formatter は同じですか?
はい。このページでは beautify、pretty-print、整形はいずれも、JSON に読みやすいインデントと改行を付けることを意味します。コンパクトな文書が必要な場合は JSON 圧縮ツールを使ってください。
JSON がデバイスの外に送られますか?
貼り付けたテキストとローカルファイルは、ブラウザー内で処理します。DevToolsy は JSON をアップロードせず、文書の履歴も保存しません。必要な結果は、ページを離れる前にコピーまたはダウンロードしてください。