JSON Key Renamer
Recursively rename JSON keys with case conversion (camel/snake/kebab) and custom find/replace mappings.
Mappings run first, then the case style is applied to the result.
{
"userId": 42,
"firstName": "Ada",
"lastName": "Lovelace",
"contactInfo": {
"emailAddress": "ada@example.com",
"phoneNumber": "+1-555"
},
"favoriteLanguages": [
{
"langName": "Ada",
"yearCreated": 1980
},
{
"langName": "JavaScript",
"yearCreated": 1995
}
]
}About JSON Key Renamer
JSON Key Renamer recursively renames the keys in a JSON document. Three modes: case conversion (camelCase ↔ snake_case ↔ kebab-case ↔ PascalCase ↔ CONSTANT_CASE), literal find / replace, and regex find / replace for pattern-based rewrites. Values stay untouched; only the keys change. The transform applies at every nesting level.
Case conversion is the everyday job — you have a snake_case API payload and your TypeScript code expects camelCase, or vice versa. Find / replace handles renaming a deprecated field across a config (`old_field` → `new_field`) without hand-editing every occurrence. Regex mode handles patterns: strip a `_v2` suffix, lowercase a specific prefix, or convert keys ending with `Id` to `_id`. For removing keys instead of renaming them, use JSON Property Editor; for querying values by path, use JSONPath.
Examples
{"user_name":"Ada","date_of_birth":1815}{"userName":"Ada","dateOfBirth":1815}Case conversion: snake_case → camelCase. The transform applies recursively to nested objects.
Frequently asked questions
Does it touch values?
No. Values are preserved bit-for-bit; only keys are rewritten. If a value is itself a string that looks like a key, it is left alone.
How is this different from JSON Property Editor?
Property Editor removes or picks keys by path. Key Renamer renames keys. Use Property Editor when keys should disappear; use Key Renamer when they should be re-spelled.
What happens when two source keys would map to the same target key?
The later occurrence overwrites the earlier one and a warning is shown so you can adjust the rule. This typically happens with case conversion when two source keys differ only in case.
Is regex mode JavaScript regex?
Yes. The same flavour as Filter Lines by Regex, including lookbehind and named groups on modern browsers.
