Use the free JSON Key Case Converter below: your data never leaves your browser — all work happens on your device, and nothing is uploaded to any server.
Convert JSON Keys Between Naming Styles
Different systems name things differently. JavaScript and JSON APIs often use camelCase, like firstName. Python and Ruby code often use snake_case, like first_name. C# and Java APIs often use PascalCase, like FirstName. Configuration files and web addresses often use kebab-case, like first-name. When data moves between two systems, the keys need to change style, and changing them by hand across a large document is slow and easy to get wrong. This tool renames every key at every depth, in one step, while leaving every value untouched.
Paste the JSON, pick the target style, and press Convert. The output is the same document with new keys. Nested objects are converted too, and so are objects inside arrays. A key inside an order inside a list of orders is renamed just like a top-level key. Nothing else changes: numbers stay numbers, strings stay strings, and the structure stays exactly as it was.
The Four Styles, Explained
CamelCase starts with a lowercase letter and capitalizes each following word: firstName, orderId, zipCode. It is the default style in JavaScript and in most JSON APIs, because it reads naturally in code that accesses fields with dots. Snake_case uses lowercase words joined by underscores: first_name, order_id, zip_code. It is the default in Python and Ruby, and in many databases, where underscores are easier to type and read in queries.
PascalCase capitalizes every word, including the first: FirstName, OrderId, ZipCode. It is the default for class and property names in C# and for exported types in Go, and it appears in JSON when an API mirrors those names directly. Kebab-case uses lowercase words joined by hyphens: first-name, order-id, zip-code. It is common in URLs, CSS, and configuration keys, where hyphens are the natural separator and underscores would look out of place.
How Keys Are Split and Rejoined
Conversion starts by splitting each key into words. Underscores, hyphens, and spaces are word boundaries. A change from lowercase to uppercase is also a boundary, so firstName splits into first and Name, and ZIPCode splits into ZIP and Code. Once the words are known, the target style rejoins them with its own rule: camelCase lowercases the first word and capitalizes the rest, snake_case lowercases everything and joins with underscores, and so on.
Acronyms deserve a note. A key like HTTPResponse splits into HTTP and Response, and the tool lowercases each word before rejoining, so camelCase gives httpResponse and snake_case gives http_response. That is the conventional result, though some teams prefer to keep acronyms fully uppercase. If your team has that rule, check the acronym keys after conversion and adjust them. The tool handles the common cases; team style guides are yours to enforce.
When You Need This
The most common use is moving data between a frontend and a backend that use different conventions. A JavaScript app sends camelCase, a Python API expects snake_case, and the translation has to happen somewhere. Converting a sample payload here shows you exactly what the translated document looks like, which helps you write the translation code correctly, or verify that a library is doing it right.
Another use is cleaning data before analysis. Datasets collected from several sources often mix styles: one file uses user_id, another uses userId, and a third uses UserID. Normalizing all keys to one style before loading the data into a table or a database prevents the same field from appearing as three different columns. Convert each file once, and the merge becomes straightforward.
A third use is preparing configuration. A settings file written in one style may need to match the style of the system that reads it. Converting the keys in a sample config shows the result immediately, without editing each key by hand and risking a typo that breaks the whole file.
What the Tool Does Not Change
Values are never touched. A string value that looks like a key is left alone. A number stays a number. The order of keys is preserved as far as JSON allows, and the nesting is preserved exactly. Arrays keep their order, and objects inside arrays are converted recursively, so no key at any depth is missed.
One thing to watch: two different keys can collide after conversion. If a document contains both first_name and firstName, converting to camelCase produces firstName twice, and the second value overwrites the first in the output object. This is a property of the conversion itself, not a bug in the tool, but it means you should check for collisions when your input mixes styles. The converted output will show the collision plainly, since one of the values will be gone.
Privacy
The conversion runs entirely in your browser. Your JSON is never uploaded, never stored, and never leaves your device. The tool is free, needs no account, and works on documents of ordinary size instantly.
