JSON の整形と検証
JSON を読みやすくし、構文を確認したり、コンパクトな形式にしたりできます。このガイドではインデント、キーの並べ替え、結果の保存を説明します。
付属のサンプルを試す
order-options.json をダウンロードしてください。2 点の商品を含む架空の注文で、フィールド名は英語です。customer オブジェクトには名前と都市があり、items 配列には CARD-02、BOX-01 の順に商品が入っています。サンプルには引用符付きの文字列、数値の数量と価格、真偽値 true、空の配送メモを表す null が含まれます。並べ替えの効果が分かるよう、フィールドは意図的に未整列です。
使い方
- JSON 整形・検証ツールを開きます。ファイルで付属の order-options.json を開くか、ファイルの内容を入力値に貼り付けます。
- インデントを 2 に設定し、階層ごとに 2 個のスペースを使います。最初はオブジェクトキーを並べ替えにチェックを入れません。
- 入力を処理を選択します。ツールは結果を表示する前に JSON の構文を確認します。エラーが出た場合は行と列で問題箇所を探し、入力を修正して再実行します。
- 結果を読みます。customer オブジェクトと 2 点の商品が、1 行に 1 つのフィールドまたはリスト項目として分かりやすく表示されます。並べ替えにチェックがなければ、フィールドはサンプルの順序を保ちます。
- 結果をダウンロードを選択して formatted.json を保存します。テキストをコピーを使って別のエディターに結果を貼り付けることもできます。
- ダウンロードしたファイルをテキストエディターで開き、下の確認項目に沿ってサンプルと比較します。その後、他のインデントや並べ替えの設定を試し、変更するたびに入力を処理を選択します。
変更前と変更後の例
この短い例では、order-options.json の customer オブジェクトを小さな JSON 文書として示しています。同じ名前と都市が各設定の前後でどう表示されるかを比較してください。末尾の任意の参考セクションには注文全体が載っています。
コンパクトな JSON を読みやすくする
インデントを 2 にし、オブジェクトキーを並べ替えにチェックを入れず、入力を処理を選択します。改行と階層ごとに 2 個のスペースが追加され、フィールドの元の順序は保たれます。
変更前:コンパクトな入力
{"customer":{"name":"Zoë","city":"Bergen"}}変更後:2 スペースのインデント
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}オブジェクト内のキーを並べ替える
インデントを 2 のままにし、オブジェクトキーを並べ替えにチェックを入れて入力を処理を選択します。customer 内では city が name より前になります。どちらの値も変わりません。
変更前:元のキー順序
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}変更後:並べ替えたオブジェクトのキー
{
"customer": {
"city": "Bergen",
"name": "Zoë"
}
}JSON をコンパクトにする
インデントで圧縮を選び、オブジェクトキーを並べ替えにチェックを入れず、入力を処理を選択します。整形用のスペースと改行がなくなります。文字列とフィールドの順序は変わりません。
変更前:2 スペースのインデント
{
"customer": {
"name": "Zoë",
"city": "Bergen"
}
}変更後:圧縮
{"customer":{"name":"Zoë","city":"Bergen"}}インデントを選ぶ
| 選択肢 | 動作 |
|---|---|
| 2 | 階層ごとに 2 個のスペースを使います。メインの手順で使用する設定です。 |
| 4 | 階層ごとに 4 個のスペースを使い、入れ子のオブジェクトや配列をさらに目立たせます。 |
| ↹ | 階層ごとに 1 個のタブを使います。タブの表示幅はテキストエディターによって異なります。 |
| 圧縮 | 整形用のスペースと改行を取り除きます。引用符内のスペースは文字列の一部として残ります。コンパクトな出力にしたいときに選び、入力を処理を選択してください。 |
入力や設定を変更すると前の結果は消去されます。新しい設定で結果を作るには、もう一度入力を処理を選択してください。ツールは毎回入力欄を読み取り、前の結果を自動的に入力欄へ戻すことはありません。
オブジェクトのキーを並べ替える
各オブジェクトの元のフィールド順序を保つには、オブジェクトキーを並べ替えにチェックを入れません。チェックを入れると、大文字と小文字を区別した文字列順で、文書全体のキーを並べ替えます。配列内のオブジェクトも対象です。配列の要素自体は元の順序を保ちます。
- インデントを 2 のままにし、オブジェクトキーを並べ替えにチェックを入れて入力を処理を選択します。
- 最上位のキーは customer、deliveryNote、items、order、paid の順になります。customer 内では city が name より前です。各商品では price が quantity と sku より前になります。
- items 配列は引き続き CARD-02、BOX-01 の順です。キーの並べ替えでは、商品を sku や価格順に並べ替えません。
コピー、ダウンロード、やり直し
| 選択肢 | 動作 |
|---|---|
| テキストをコピー | 現在の結果をテキストとしてコピーします。コピーが利用できない場合は結果が選択されるため、手動でコピーできます。 |
| 結果をダウンロード | 現在の結果を formatted.json として保存します。整形、圧縮、並べ替えのいずれも同じファイル名になるため、複数の版を残す場合は名前を変更してください。 |
| 結果を印刷 | 結果のテキスト用に、ブラウザーの印刷ダイアログを開きます。 |
| 例を読み込む | 入力をツール内蔵の例に置き換え、現在の設定で処理します。この例はガイドの order-options.json とは異なります。 |
| すべて削除 | 入力、選択したファイル、結果を消去します。インデントと並べ替えの設定はそのまま残ります。 |
ダウンロードした JSON を確認する
- formatted.json をテキストエディターで開きます。注文が ORD-1042、顧客が Bergen の Zoë で、商品が 2 点あることを確認してください。
- 値と型を確認します。quantity は順に数値の 2 と 1、価格は 19.50 と 5.00 のままです。paid は引用符のない真偽値 true、deliveryNote は引用符のない null です。引用符付きの名前と商品コードは文字列のままです。
- オブジェクトキーを並べ替えを試した後は、上記のフィールド順序と、items 配列で CARD-02 が引き続き BOX-01 より前にあることを確認します。
- 圧縮と入力を処理を試します。結果を入力値に貼り戻し、インデントを 2 に設定して再び入力を処理を選択します。値と商品の順序を元のサンプルと比較してください。整形の設定でこれらは保持されます。
よくある質問とトラブル対処
JSON が無効と表示されるのはなぜですか?
表示された行と列、その位置の直前のフィールドを確認してください。キーと文字列には二重引用符、フィールドにはカンマとコロンが必要で、角括弧と波括弧は閉じる必要があります。入力を修正し、再び入力を処理を選択します。検証は JSON の構文を確認するため、有効な結果でもアプリに必要なフィールドが欠けている場合があります。
コメントや末尾のカンマは使えますか?
コメントと、閉じ角括弧や閉じ波括弧の直前にあるカンマを削除してください。JSON では無効です。この整形ツールは有効な入力を必要とし、自動修復は行いません。
キーの重複警告は何を意味しますか?
「重複キーは保持されました。一部の読み取り処理では重複キーが失われます。」は、同じオブジェクト内に同じキーが複数回あることを意味します。整形ツールはそれらの項目を残し、警告を表示します。元のデータを確認し、意図した値を選んで余分な項目を削除してください。他のアプリは 1 つしか保持しない場合があります。
ファイルを開けない、または処理できないのはなぜですか?
入力の上限は 2 MiB、つまり 2,097,152 バイトです。ローカルのテキストファイルは UTF-8 が必要です。データが複雑すぎると表示された場合は、入れ子の深さや項目数を減らしてください。大きな入力は、オブジェクトや配列の途中で切らず、小さな完全な JSON 文書に分割します。
長い数値が他のアプリで変わるのはなぜですか?
下の別の精度サンプルには 9007199254740993 と 0.10000000000000001 が含まれます。この整形ツールは、どのインデントと並べ替えの設定でも数値の文字列表現を正確に保持します。exact-numbers.json を整形し、テキストエディターで exact-numbers-formatted.json と比較してください。結果を取り込むアプリは数値を丸める場合があるため、必要な精度に対応しているか確認します。00123 のような先頭にゼロを含むコードは、JSON では引用符付きの文字列にする必要があります。
整形で既に丸められた桁を復元できますか?
ツールに届く前に丸められたり削除されたりした桁は、整形では復元できません。元のデータに戻り、完全な値を再度書き出してください。値が数量ではなく識別子なら、文字列にすると受け取るアプリが桁を保持しやすくなります。
任意:サンプルと参考出力を比較する
このコード例とダウンロードファイルは、ツールページと同じ整形ツールで order-options.json から生成しました。整形と圧縮の参考出力はキーの並べ替えを無効にし、並べ替えの参考出力は 2 スペースのインデントと並べ替えを有効にしています。
元のサンプル
{"order":"ORD-1042", "customer": {"name":"Zoë","city":"Bergen"}, "items":[{"sku":"CARD-02", "quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1, "price":5.00}], "paid":true, "deliveryNote":null}
2 スペース、元のキー順序
{
"order": "ORD-1042",
"customer": {
"name": "Zoë",
"city": "Bergen"
},
"items": [
{
"sku": "CARD-02",
"quantity": 2,
"price": 19.50
},
{
"sku": "BOX-01",
"quantity": 1,
"price": 5.00
}
],
"paid": true,
"deliveryNote": null
}圧縮、元のキー順序
{"order":"ORD-1042","customer":{"name":"Zoë","city":"Bergen"},"items":[{"sku":"CARD-02","quantity":2,"price":19.50},{"sku":"BOX-01","quantity":1,"price":5.00}],"paid":true,"deliveryNote":null}2 スペース、並べ替えたオブジェクトのキー
{
"customer": {
"city": "Bergen",
"name": "Zoë"
},
"deliveryNote": null,
"items": [
{
"price": 19.50,
"quantity": 2,
"sku": "CARD-02"
},
{
"price": 5.00,
"quantity": 1,
"sku": "BOX-01"
}
],
"order": "ORD-1042",
"paid": true
}| 参考ファイル | 設定 | バイト |
|---|---|---|
| order-formatted.json | 2 スペース、元のキー順序 | 300 |
| order-minified.json | 圧縮、元のキー順序 | 193 |
| order-sorted.json | 2 スペース、並べ替えたオブジェクトのキー | 300 |
これらは実際のテキスト出力で、画面のスクリーンショットではありません。コードは画面幅に合わせて折り返す場合があります。参考ファイル名は例を区別するためのもので、ツール自体はすべての版を formatted.json としてダウンロードします。