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 パーサを使ってから貼り付け。
関連ツール
JWT デコーダー
JWT のヘッダー・クレーム・有効期限を即座に確認。
開発00
UUID ジェネレーター
ランダムなバージョン 4 UUID をまとめて生成し、コピー。
開発00
ハッシュ生成 (SHA)
テキストから SHA-1・SHA-256・SHA-384・SHA-512 ハッシュを生成。
開発00
URL エンコーダー / デコーダー
URL 用にテキストをパーセントエンコード、または URL をデコード。
開発00
Base64 エンコーダー / デコーダー
テキストを Base64 にエンコード、または Base64 をテキストにデコード。
開発00
JSON フォーマッター & バリデーター
ブラウザで JSON を整形・並べ替え・圧縮・検証できます。
開発00