Skip to content
LocalOnly

Converters

Convert JSON to and from YAML, CSV, XML and more. Bidirectional, lossless where possible, and 100% local.

Conversion is a data-model problem, not a syntax problem

It is tempting to think of these as text transformations, but each format encodes a different idea of what data is. JSON has objects, arrays, strings, numbers, booleans and null. YAML adds comments, anchors, multiple documents per file and a much looser sense of what an unquoted scalar means. CSV has no nesting and no types at all - only rows of text. XML has attributes, namespaces, ordered mixed content and no native concept of a number.

So conversion means deciding what happens to the concepts that do not exist on the other side, and every converter makes those decisions whether or not it tells you. These pages tell you.

Where information is lost, and why

Round-tripping is only lossless when both formats can express the same shapes. JSON to YAML and back is usually clean. YAML to JSON is not: comments and anchors have no JSON equivalent and are dropped, and YAML's implicit typing means an unquoted no, on or 1.0 may not survive as the token you wrote.

JSON to CSV is the lossiest direction, because CSV is a flat grid. Nested objects have to be flattened into dotted column names, arrays have to be joined or exploded into rows, and documents with differing keys need a union of columns with blanks. None of that is reversible without knowing the original schema.

XML carries the opposite problem. Attributes and child elements are distinct in XML but both become object keys in JSON, so converters need a convention - typically an @ prefix for attributes and a #text key for element content. Element order is meaningful in XML and object key order is not meaningful in JSON, so repeated siblings must become arrays to survive.

Checking a conversion before you trust it

The cheapest verification is a round trip. Convert forward, convert back, then diff the result against your original with the JSON compare tool. Whatever the diff shows is exactly what the conversion cost you - and seeing it explicitly is far better than discovering it in a downstream system three weeks later.

For anything that will run repeatedly rather than once, generate a JSON Schema from the converted output and validate future runs against it. That turns a silent structural drift into a loud, early failure.

Everything here runs in your browser

None of these converters send your input anywhere. LocalOnly is a static site with no application backend, so the work happens in your tab and the payload you paste - API keys, tokens, customer records - stays on your machine. Read more about how and why the site is built this way, or the Privacy Policy for what the site itself does collect.

Explore other categories

Command Palette

Search for a tool or command