仕様と根拠
改名の方法
オブジェクトのキーを、配列の中も含めて全階層で調べます。規則の旧い名前と文字が完全に一致するキーは規則の新しい名前にし、当たらないキーにだけケース変換を適用します。キーの比較は文字の並びとして行い、大文字と小文字は区別します(RFC 8259 8.3 節)。値は変更しません。
ケース変換の語の分け方
キーを、_ や - や空白の区切りと、小文字から大文字への切り替わり、連続する大文字、数字の並びで語に分けます。キャメルは先頭の語を小文字、以降の語の先頭を大文字にして連結し、スネークは小文字を _、ケバブは小文字を - でつなぎます。HTTPServer は HTTP と Server の 2 語として扱います。
名前の重なり
RFC 8259 4 節では、オブジェクトの名前は一意であるべきで、重なると読み取り側の挙動が予測できないとされています(最後だけを採る、エラーにする、すべて残すなど)。改名の結果、同じオブジェクトで名前が重なる場合は、その場所を警告し、出力には元の値をすべて残します。
根拠にした仕様・資料
| 仕様・資料 | 確認日 | 使った箇所 |
|---|---|---|
| RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format | 2026年10月28日 | 4 節 オブジェクト(名前は一意であるべき)・7 節 文字列・8.3 節 文字列の比較 |
指摘の段階
- エラー: 仕様に反していて、正しく読めない・処理できない入力です。
- 警告: 読めるものの、仕様の推奨に反する・矛盾する・意図と違う結果になりやすい入力です。
- 情報: 誤りではありませんが、知っておくとよい扱い(読み飛ばした部分や解釈)です。
入力の扱い(送信しない仕組み)
処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。
このツールでできないこと(制約)
- 入力の JSON に最初から同じキーが重なっている場合、標準の読み込みでは最後の値だけが残ります。重複の確認には重複キーの検査を別に使ってください。
- 整数だけの名前("1" など)は、読み込みの都合で他の名前より先に並び替わることがあります。キーの順序が意味を持つデータでは出力を確認してください。
- 値の文字列や数値は変えません。キーの名前だけが対象で、値の中の文字列は改名されません。
- 規則は完全一致だけです。部分一致や正規表現による置換には対応していません。
ご利用にあたって
- 改名した JSON を受け取る側のプログラムが、新しいキーの名前に対応しているか確認してから使ってください。