改名で同じ名前が重なる

a を c に改名すると、すでにある c と重なってしまう境界の例です。重なりを警告し、どちらの値も失わずに出力へ残すことを確かめます。

入力

JSON

{"a":1,"c":2}

改名の規則(1 行に「旧い名前=新しい名前」)

a=c

ケース変換(規則に当たらないキーに適用)

変換しない

字下げ

空白 2 つ

結果

エラー 0 件・警告 1 件・情報 1 件

指摘(エラー・警告・情報)

  • 警告 $ 改名の結果、「a」「c」がすべて「c」になり、同じオブジェクトに同じ名前が重なります。RFC 8259 4 節では名前は一意であるべきで、重なると読み取り側の挙動が予測できません。出力には両方を残しています。規則を見直してください。
  • 情報 出力 値の文字列は変更していません。整数だけの名前(例: "1")は、読み込みの都合で他の名前より先に並び替わることがあります。
キーの総数2 個
改名したキー1 個
名前が重なった箇所1 件

改名した JSON

{
  "c": 1,
  "c": 2
}

検算(この結果になる理由)

a は規則で c になり、もとの c と同じオブジェクトで「c」が 2 つになります。RFC 8259 4 節では名前は一意であるべきなので警告が 1 件出ます。値 1 と 2 はどちらも消さず、出力に並べて残します。

判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。

このツールの制約

ご利用にあたって

  • 改名した JSON を受け取る側のプログラムが、新しいキーの名前に対応しているか確認してから使ってください。

ほかの入力例