YamlBox

JSON ツール · 6 分で読みました

JSON フォーマッタ: 美しく、縮小され、実際に有効です

JSON フォーマッタは 3 つのジョブを実行します。実際にどれが必要かを知ることは価値があります。つまり、高密度 JSON を読み取り可能にし、JSON をコンパクトにして、ファイルがどこで有効でなくなったかを正確に通知します JSON。ほとんどの人は、何かが壊れたためにフォーマッタに手を伸ばします。そして、美しい印刷ではなく、エラー メッセージが午後の時間を節約する部分です。

更新されました

Pretty-print: 人間とプルリクエスト用

インデント JSON はレビュー可能 JSON です。 2 つのスペースはほとんどの JavaScript コードベースの規則であり、`JSON.stringify(value, null, 2)` のデフォルトと一致します。 4 つのスペースは、そのように構成されたエディターに適しています。インデントが混在すると、後のすべての差分がノイズになるため、書式設定の選択は一貫性よりも重要です。 JSON が生成された場合は、ジェネレータでインデントを一度設定し、貼り付けられたペイロードに対してフォーマッタがローカルでそれを適用できるようにします。

Minify: ネットワーク上のペイロード用

JSON の空白はオプションであるため、削除すると無料で節約できます。 200 KB API 応答では、その差は通常バイトの 15 ~ 30 パーセントであり、予算がモバイル接続またはキャッシュ ヘッダーに従う必要がある場合に重要になります。ペイロードをデータベース列に保存したり、ペイロードを URL に埋め込む前に縮小することも正しい手段です。手動で縮小する JSON ではデバッグが機能しなくなるため、手作業ではなくビルド ステップとして縮小してください。

検証: 実際に発生するエラー

JSON は意図的に小さな文法であるため、エラーが非常に繰り返し発生します。ほとんどすべての無効な JSON エラーは、JavaScript または YAML から取得された 5 つの習慣のいずれかに遡ります。

  • 末尾のカンマ — `{"a": 1,}` は有効な JavaScript であり、JSON は無効です。
  • 一重引用符または引用符で囲まれていないキー — `{a: 'b'}` は `{"a": "b"}` になる必要があります。
  • コメント — `// note` と `/* note */` は JSON にはまったく入りません。
  • エスケープされていない制御文字 - 文字列内のリテラル改行は `\n` である必要があります。
  • 連結オブジェクト — 通常、1 行に 1 つの JSON ドキュメントが含まれるログ ファイルからの 2 つのトップレベル オブジェクトを並べて表示します。

フォーマッタは行と列を通知し、抜粋を表示する必要があります。 「予期しないトークン」だけではスクロールする必要があります。 「行 84、列 17 — } の前の末尾のカンマ」は修正です。

デバッグ前に検証する理由

統合が失敗すると、本能的にコードを検査することになります。多くの場合、ペイロード自体の形式が不正です。テンプレートでカンマが抜け落ちたり、ログ パイプラインで行が切り詰められたり、ドキュメントからのコピー アンド ペーストでスマート クオートが導入されたりします。 JSON フォーマッタを実行すると、最初に「データが間違っている」と「コードが間違っている」が数秒で分離され、通常は正確な行番号がそれを生成したテンプレートを直接指します。

大きなファイルとプライバシー

API 応答とデータベース エクスポートには、トークン、個人フィールド、または顧客データが含まれることがよくあります。サーバー側の JSON フォーマッタとは、そのペイロードをサードパーティにアップロードして返送してもらうことを意味します。これは、データ保護の問題であり、利点はありません。フォーマットは簡単なローカル操作であるためです。 YamlBox JSON フォーマッタは、ネットワーク呼び出しを行わずにブラウザで解析するため、オフラインで動作し、ペイロードをマシン上に保持します。同じページには、インデントの選択、安定した差分のためのキーのソート、深さやキー数などのライブ統計が表示されます。

JSON フォーマッタ — よくある質問

JSON のフォーマットと検証の違いは何ですか?

書式設定では空白のみが変更されるため、文書が解析されれば常に安全です。検証とは、解析がまったく行われていないことを確認することです。入力を解析できないフォーマッタは、出力を生成する代わりに行と列をレポートします。そのレポートは有用な部分です。

縮小された JSON はどのくらい小さくなりますか?

通常は 15 ~ 30% ですが、ドキュメントのネストの深さとキーの長さに応じて異なります。縮小はロスレスです。JSON ではトークン間の空白は意味を持たないため、縮小されたドキュメントはまったく同じ値に解析されます。

シークレットを含む JSON をブラウザでフォーマットしても安全ですか?

はい、フォーマッタが完全にクライアント側で実行される場合は可能です。アップロードやサーバーへのリクエストがないため、ペイロード内のトークンはタブに残ります。ネットワークがオフになってもページは動作し続けるため、自分で確認できます。

この投稿で言及されているツール

19 ツールの完全なリストを参照する

さらに読む記事

6 分で読みました

JSON diff: データを実際の構造と比較する

2 つの JSON ペイロードを、キーの順序と空白を無視する構造的な JSON 差分と比較し、移動された値を強調表示し、テキストの差分が誤解を招く理由を示します。

6 分で読みました

YAML から JSON: 迷うことなく構成を変換

マルチドキュメントのサポートと正確なエラー位置を使用して、ブラウザで YAML を JSON に変換します。さらに、CI パイプラインを静かに破壊する YAML の間違いも含まれます。

すべての 19 投稿 →