JSON キーソーター

JSON オブジェクトキーをアルファベット順、逆アルファベット順、またはキー長でソートします。ネストされたオブジェクトを再帰的にソートし、クリーンでフォーマットされた出力を生成します。

Sort order

Indent

JSON キーソーターの使い方

  1. 1JSON を入力フィールドに貼り付けます。
  2. 2ソート順序を選択します:A–Z、Z–A、またはキー長で。
  3. 3再帰的ソートを有効にしてネストされたオブジェクトもソートします。
  4. 4ソートおよびフォーマットされた JSON 出力をコピーします。
Zenovayアナリティクス

今、誰がサイトにいるかを把握。

  • リアルタイムの訪問者トラッキング
  • プライバシーファースト、クッキーバナーなし
  • 2分でセットアップ
Zenovayを見る

よくある質問

JSONキーをソートする理由は何ですか?
JSONキーをソートするとオブジェクトが読みやすくなり、比較やdiffが簡単になります。キーが常にアルファベット順になっていると、特に大規模な設定では特定のフィールドを見つけやすくなります。ソート済みキーはgit diffのノイズも削減します。複数の開発者が同じJSONオブジェクトに独立してキーを追加する場合、ソート済み出力では各新しいキーがソート位置に表示されるため、追加された場所に関係なくクリーンなdiffが生成されます。多くのコードスタイルガイドとJSONスキーマはソート済みキーが必要です。
JSONでキーの順序は重要ですか?
技術的には、RFC 7159仕様に従うと、JSONオブジェクトはキーと値のペアの順序付けられていないコレクションです。ただし、実際にはほとんどのJSONパーサーは挿入順序を保持します。JavaScriptエンジン(V8、SpiderMonkey)は文字列キーの挿入順序を保持します。Pythonのdict(3.7以降)、JavaのLinkedHashMap、およびほとんどのモダンパーサーは順序を維持します。そのため、仕様では定義されていませんが、キーの順序は実際には意味があり、広く依存されています。
再帰的キーソートとは何ですか?
再帰的ソートはネストされたすべてのオブジェクトのキーをソートします。例えば、JSONに"user"オブジェクト内に"address"オブジェクトがある場合、再帰的ソートは"address"のキー(city、country、streetをアルファベット順に)と"user"のキー(address、email、nameをアルファベット順に)をソートします。再帰的ソートなしでは、最も外側のオブジェクトのキーのみが並べ替えられます。
コードでJSONキーをソートするにはどうすればよいですか?
Pythonの場合:json.dumps(data, sort_keys=True)。JavaScriptの場合:JSON.stringify(sortKeys(obj))。sortKeysはObject.keys(o).sort()を使用して再帰的にソートします。Javaの場合:キーで自動的にソートするTreeMapを使用します。Goの場合:json.Marshalは構造体フィールドがソートされているため、デフォルトではソート済みキーが生成されます。ただし、動的マップの場合は、カスタムエンコーダーが必要です。ほとんどのJSONフォーマットツールおよびプリティプリンターにはソートオプションがあります。
安定ソートと不安定ソートの違いは何ですか?
JSONキーの場合、すべてのソートは安定です。つまり、ソート順序が同じキーは相対位置を保持します(JSONオブジェクトのキーは一意である必要があるため、同値は発生しません)。ソート安定性は同じ値を持つ配列要素に関係があります。標準的なアルファベット(字句)ソートはUnicodeコードポイントを使用して文字ごとに比較します。これは大文字(A=65)が小文字(a=97)の前にソートされ、"Z"が"a"の前にソートされることを意味します。