規則でキーを名前替えする
ユーザー情報の JSON で、id と user_name を規則で改名する代表例です。配列の中のオブジェクトのキーも改名されることを確かめます。
入力
JSON
{"id":1,"user_name":"A","tags":[{"user_name":"x"}]}改名の規則(1 行に「旧い名前=新しい名前」)
user_name=userName id=userId
ケース変換(規則に当たらないキーに適用)
変換しない
字下げ
空白 2 つ
結果
エラー 0 件・警告 0 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 出力 値の文字列は変更していません。整数だけの名前(例: "1")は、読み込みの都合で他の名前より先に並び替わることがあります。
| キーの総数 | 4 個 |
|---|---|
| 改名したキー | 3 個 |
| 名前が重なった箇所 | 0 件 |
改名した JSON
{
"userId": 1,
"userName": "A",
"tags": [
{
"userName": "x"
}
]
}検算(この結果になる理由)
キーは id・user_name・tags と、配列の中の user_name の 4 つです。規則に当たるのは id と 2 つの user_name の 3 つで、tags は規則にないのでそのままです。値は変わらず、重なる名前もありません。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- 入力の JSON に最初から同じキーが重なっている場合、標準の読み込みでは最後の値だけが残ります。重複の確認には重複キーの検査を別に使ってください。
- 整数だけの名前("1" など)は、読み込みの都合で他の名前より先に並び替わることがあります。キーの順序が意味を持つデータでは出力を確認してください。
- 値の文字列や数値は変えません。キーの名前だけが対象で、値の中の文字列は改名されません。
- 規則は完全一致だけです。部分一致や正規表現による置換には対応していません。
ご利用にあたって
- 改名した JSON を受け取る側のプログラムが、新しいキーの名前に対応しているか確認してから使ってください。