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 をブラウザでフォーマットしても安全ですか?
はい、フォーマッタが完全にクライアント側で実行される場合は可能です。アップロードやサーバーへのリクエストがないため、ペイロード内のトークンはタブに残ります。ネットワークがオフになってもページは動作し続けるため、自分で確認できます。
この投稿で言及されているツール
さらに読む記事
6 分で読みました
JSON diff: データを実際の構造と比較する
2 つの JSON ペイロードを、キーの順序と空白を無視する構造的な JSON 差分と比較し、移動された値を強調表示し、テキストの差分が誤解を招く理由を示します。
6 分で読みました
JSON ~ JSON スキーマ: サンプル ペイロードからコントラ
ブラウザで JSON から JSON スキーマに変換します。実際のペイロードからドラフトを推論し、必要なフィールド、形式、列挙型を強化し、推論の制限も加えます。
6 分で読みました
YAML から JSON: 迷うことなく構成を変換
マルチドキュメントのサポートと正確なエラー位置を使用して、ブラウザで YAML を JSON に変換します。さらに、CI パイプラインを静かに破壊する YAML の間違いも含まれます。
- 読むべき長い記事: YAML vs JSON: いつどちらを使用するか (および変換方法