JSON キーソート
JSON オブジェクトのキーをアルファベット順に並べ替え — ネストオブジェクトとオブジェクト配列への再帰下降オプション。配列自体は元の順序を保つ — オブジェクトキー順序のみ変更。決定論的差分(ソート済み `package.json` をコミット → レビュアーは意味ある変更だけ見る)・スナップショットテスト前の API フィクスチャ正規化・キー順序に厳しい下流ツールの期待順序と一致に有用。
—
ソート済み
{
"author": {
"email": "demo@example.com",
"name": "Alice"
},
"dependencies": {
"astro": "^4",
"react": "^18"
},
"name": "demo",
"scripts": {
"build": "astro build",
"dev": "astro dev",
"test": "vitest"
},
"version": "1.0.0"
}オブジェクトキーのみ並び替え。配列要素順序は保持 — 必要なら別途ソート。
使い方
- JSON を貼り付け(`package.json` または任意のオブジェクト)。
- `deep` をトグルしてネストオブジェクトもソート、またはオフのままトップレベルキーのみ。
- 昇順/降順を選び結果をコピー。
よくある質問
- 配列要素を並べ替える?
- いいえ — オブジェクトキーのみ。配列は要素位置が通常意味を持つので元の順序を保つ。配列要素もソートが必要なら、専用ソートステップ(例: jq `sort_by`)を先に実行。
- なぜ `package.json` をソート?
- `npm` 等のツールはキー順序に寛容だが人間は違う。ソートはレビュアーが実際の変更(新しい依存関係)に集中し、`npm install` による再配置の churn を無視できる。一部チームは `sort-package-json` pre-commit フックで強制。
- ロケール対応ソート?
- いいえ — コードポイントソート・オプションの大小文字無視。`jq`・`Object.keys().sort()`・ほとんどの言語標準ライブラリのデフォルトと一致。ロケールコレーションは非 ASCII キーで異なる結果を出すことがあるが、正規出力では稀に望まれる。
- JSON5・コメント・末尾カンマは?
- 厳格な JSON のみ — 入力は `JSON.parse` でパースできる必要。コメント付き設定ファイルは先に剥がすか、JSON5 パーサを使ってから貼り付け。
関連ツール
JSON フラット化 / 復元 (ドット記法)
ネストした JSON を単一階層のドット記法キーにフラット化、またはフラットなキーからネスト JSON を復元 — 区切り文字・配列記法を設定可、ブラウザ内で完全可逆。
開発 0 0
UUID v5 ジェネレーター
名前空間と名前から、決定的な名前空間ベースの UUID(バージョン5、SHA-1)を生成します — 同じ入力は常に同じ UUID になります。
開発 0 0
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。
開発 0 0
JWT デコーダー
JWT のヘッダー・クレーム・有効期限を即座に確認。
開発 0 0
JSON Diff ビューア
2 つの JSON を構造的に比較 — 追加 / 削除 / 変更されたキーが正確に分かります。
開発 0 0
JSON → TypeScript インターフェイス
JSON サンプルから TypeScript インターフェイスを生成 — キー名に沿って再帰的に型推論。
開発 0 0