Convert JSON, YAML, XML, CSV, TSV, TOML, INI and Excel into each other
Runs in your browser. Nothing you type is sent anywhere. Updated on 24 Oct 2026.Configuration arrives in whichever format a tool happens to prefer. JSON, YAML, XML, CSV, TSV, TOML and INI convert into each other here, 7 formats in any direction, up to 4 MB. The conversion happens in your browser, so a config full of credentials stays private.
Paste your data into the input pane, or press Open file to load a file up to 4 MB (an Excel .xlsx up to 10 MB).
Check the From row: the format found in what you pasted is picked for you, and tapping another chip corrects it.
Pick the output format in the To row; a greyed-out chip is a pair that cannot be converted.
Read the result in the output pane and the notes beneath it on anything that changed.
Press Copy or Download under the panes to keep the result.
This converter moves structured data between JSON, YAML, XML, CSV, TSV, TOML and INI in every direction that makes sense: forty of the forty-two possible pairs. Paste the data or open the file and it works out which format it is from the content itself, not from the name on the end of it, then offers the conversion people usually want next. If the guess is wrong, one tap fixes it.
The difficult part is not parsing. It is being honest about shape. CSV and TSV are rows of columns; JSON, YAML, TOML and XML are values inside values; INI is one flat level of named sections. Moving between those shapes always decides something on your behalf, so every conversion prints one line saying what it decided: which list became the rows, which nested objects became dotted columns such as address.city, which keys were left out and why. A list inside a cell becomes JSON text rather than disappearing.
Anything a target format cannot hold is named rather than dropped quietly. TOML has no empty value, so each null is listed by the key it came from. XML has no types and no lists, so a repeated tag is the only list it can write, and attributes become keys marked with an at sign. Comments in YAML, TOML and INI go, because nothing else here has a place to keep them.
Numbers are read cautiously. A code like 007 stays text, a sixteen-digit account number keeps all sixteen digits, and nothing that resembles a date is turned into one. Errors point at the line and column. Everything runs in your browser: a config file with passwords in it never leaves your machine.
Excel is a way in and a way out rather than an eighth format. Open an .xlsx and one sheet is read in your browser and shown as CSV, so you can see exactly what will be converted; choose Excel in the To row and the result is saved as an .xlsx with typed cells, a bold header row and fitted column widths. XML to Excel is the common case: the repeating element becomes the rows, exactly as it does for CSV.
JSON, YAML, XML, CSV, TSV, TOML and INI, in forty of the forty-two possible directions. The two it refuses are CSV to INI and TSV to INI, because INI holds named sections and spreadsheet rows have no names, so every row would need an invented heading such as [row_1].
A spreadsheet needs rows, so the converter looks for the list that is the table. A JSON array of objects becomes one row per object. If the array sits inside an object, that array is used and the other top-level keys are named so you can see exactly what is not in the sheet. Nested objects become dotted columns such as address.city.
No. Everything runs in your browser, so a config file holding passwords, tokens or internal hostnames never leaves your device. The tool is free and needs no signup. There is a 4 MB limit on the text, because a larger file would lock up the tab rather than convert faster.
Because it would never come back. Pin codes, part numbers, phone numbers and account numbers all look like numbers and all break when they are turned into one. Anything with a leading zero, a plus sign, a space or more digits than JavaScript can hold exactly stays as text, and nothing that looks like a date is read as one.
No, and the tool says so each time. YAML, TOML and INI allow comments; JSON, CSV and TSV have nowhere to put them, and nothing records which value a comment belonged to. XML comments go the same way. Everything else is kept, and anything that could not be written is named rather than quietly dropped.
An attribute becomes a key with an at sign in front of it, so id="7" becomes "@id": 7. Text sitting beside child elements is kept under a #text key. A tag that appears more than once becomes a list; a tag that appears once stays a single value, because the document never said it was a list of one.
Both. Drop or open a .json, .yaml, .xml, .csv, .tsv, .toml, .ini or .cfg file and it is read on your device. The format is worked out from the content rather than the extension, so a file saved with the wrong name is still read correctly, and the tool says when the name and the content disagree.
Yes. Choose Excel in the To row and press Download Excel: the table is saved as an .xlsx with a bold header row, real numbers and dates, and codes like 007 kept as text. To go the other way, open an .xlsx of up to 10 MB; one sheet is read in your browser and shown as CSV, ready to become XML or JSON. Formulas come across as their saved results.
Still stuck? Ask about Data Converter and anybody who knows can answer. No account needed.
Same job, other tools: JSON to YAML – Turn JSON into clean, readable YAML for configs · Image to Base64 – Get a data URI for any image, ready for CSS or HTML · TSV to JSON – Convert tab-separated values, such as a paste from Excel, into JSON · YAML Validator – Check YAML syntax and see the exact line and column of each error.
Also works as: YAML to XML · YAML to TOML · YAML to TSV · XML to JSON · XML to TOML · XML to INI · XML to CSV · XML to TSV · TOML to YAML · TOML to XML · TOML to INI · TOML to CSV · TOML to TSV · INI to JSON · INI to YAML · INI to XML · INI to TOML · INI to CSV · INI to TSV · CSV to XML · CSV to TOML · CSV to TSV · TSV to YAML · TSV to XML · TSV to TOML.
In the collections JSON Tools · Developer Converters.