仕様と根拠

重複の数え方

オブジェクトごとに、項目名を文字に直した結果(\u0061 は a と同じ)で比べ、2 回以上現れるものを重複とします。別のオブジェクトに同じ名前があるのは重複ではありません。RFC 8259 4 節は、名前は一意であるべき(SHOULD)とし、重複したときの読み込み側の挙動は予測できない(最後だけを採る・拒否する・すべて残すなどが混在する)としています。

警告と情報の分け方

重複した項目の値がすべて同じなら情報、値が違うなら警告にします。値が違うと、読み込む側によって採用される値が変わり、意図しない設定や金額が使われるおそれがあるためです。値の比較は空白を除いた書かれ方どおりで、1 と 1.0 は別の値として扱います。

構文エラーのとき

RFC 8259 の文法に沿って読み、構文が壊れていると重複は調べられません。最初に見つかったエラーの位置を何行目の何列目かで示します。整形や、より詳しい構文エラーの説明が必要なときは、整形用の JSON ツールで直してから貼り直します。

根拠にした仕様・資料

仕様・資料と確認日
仕様・資料確認日使った箇所
RFC 8259 The JavaScript Object Notation (JSON) Data Interchange Format2026年10月28日4 節(オブジェクトの名前は一意であるべき・重複時の挙動は予測できない)・7 節(文字列のエスケープ)・8.3 節(文字列の比較)

指摘の段階

入力の扱い(送信しない仕組み)

処理はすべてお使いのブラウザの中で行います。処理の本体はこのサイトから配信する小さなスクリプト(/app.js)で、外部のサービスやライブラリを読み込みません。ページはブラウザに通信を禁止させる設定(Content-Security-Policy の connect-src)つきで配信しており、入力した内容がサーバーや第三者へ送られることはありません。ファイルを選んだ場合も、端末の中で読み込むだけです。

このツールでできないこと(制約)

ご利用にあたって

  • 検査は JSON の構文と項目名の重複に限ります。読み込む側のソフトが独自の制限や挙動を持つ場合があります。
  • 大きな JSON はお使いの端末の性能によって処理に時間がかかることがあります。