コード整形 / MULTIVERTO

JSON キーをソート

配列順序を変更することなくオブジェクトキーを再帰的にアルファベット順に並べます。

変換ツール入力内容はこのブラウザ内にとどまり、変換のために送信されません。

ファイルはブラウザー内にとどまります。
ツールを連結

前の結果に各テキストツールを適用します。 テキスト変換ワークフロー ↗

このブラウザーには手順の名前とツールの順序だけを保存します。入力内容と結果は保存しません。

01 / 例

例

入力{"z":"ようこそ","a":{"z":"こんにちは","a":true}}
結果{ "a": { "a": true, "z": "こんにちは" }, "z": "ようこそ" }

02 / ガイド

JSON キーをソート — 仕組み

変換の仕組み

配列の順序を変えずに、オブジェクトのキーを再帰的にアルファベット順へ並べ替えます。JSON を解析し、各オブジェクトのメンバー名を整列させてから、結果をインデントします。

具体的な変換例

この例では入力「{"z":"ようこそ","a":{"z":"こんにちは","a":true}}」から出力「{ ⏎ "a": { ⏎ "a": true, ⏎ "z": "こんにちは" ⏎ }, ⏎ "z": "ようこそ" ⏎ }」が得られます。⏎ は実際の改行を示します。 変更された分離符号、名前、値タイプを確認してからこの結果を使用してください。 ソートJSONキーを使って、全てのファイルや要求を変換する前に、目的パーサと比較して小さなレコードを一つ比較する。 配列順序を変更することなくオブジェクトキーを再帰的にアルファベット順に並べます。

フォーマット規則と制限

この操作はテキストの行を並べ替えるのではなく、JSON を解析します。すべてのオブジェクトを再帰的にたどり、メンバー名を JavaScript の辞書順に並べます。配列の順序には通常意味があるため、その要素は元の位置に保ちます。true、false、null、数値を含め、各値の JSON 型は保持されます。結果を確認しやすいようインデントは変わりますが、数字の表記や意味を持たない空白は元と異なる場合があります。JSON オブジェクトのキー順はアプリにとって意味を持たないことが多い一方、差分、スナップショット、正確なバイト列へ署名するプロトコルでは重要になり得ます。この出力を署名用の正準 JSON 形式として使わないでください。元データに同名のメンバーが重複している場合、並べ替える前に JSON パーサーによって解決されます。すべての出現を保つ必要があるなら専用のパーサーで調べてください。オブジェクトのメンバー順が異なる API テストデータを比較しつつ、配列項目の順序は保ってください。 安全な整数の範囲である±9,007,199,254,740,991を超える引用符なしの整数は、JSONの処理中に拒否されます。識別子の全桁を保つには引用符で囲んだ文字列にしてください。

結果を確認

JSON キーの並べ替えを確認するときは、出力を再び解析して、元のバイト列ではなく解析した入力データと比べてください。配列の順序と、配列内の入れ子を含むすべてのオブジェクトのキー順を調べます。結果に署名やハッシュを使うなら、キーをアルファベット順にするだけで十分とせず、そのプロトコルが求める正確な正準化を使ってください。配列の中に、キーの順序を意図的に逆にしたオブジェクトを入れて試します。配列の位置が動いていないことを確かめながら、外側と内側のオブジェクトを確認してください。元データと結果は見た目が似ていても役割が異なります。上記の方法が定義するのは対応する範囲であり、その形式名のあらゆる拡張ではありません。厳格な受け取り側に渡すなら、多くの記録を変える前に小さな既知の例を試してください。検証に失敗した場合は元の入力と最初に報告されたエラーに戻ります。生成結果だけを編集すると原因が隠れることがあります。受け取り側のアプリが受理するまで元データを保持します。変換はブラウザー内で行われますが、結果を共有 URL、リポジトリ、リクエストへ貼り付けるかどうかは別の公開上の判断です。

入力から出力への変換過程
JSON 入力
構造を読み込み変換
JSON 結果