Flatten JSON into INI sections for an older program that reads .ini or .cfg
Runs in your browser. Nothing you type is sent anywhere. Updated on 24 Oct 2026.INI is the flattest format here: one level of named sections holding single values. Deeper JSON nesting becomes dotted section names such as [database.pool], and anything that is still a list or an object at that point is written as JSON text on one line, so nothing is lost even though a program reading the INI will see it as a string.
The page opens with JSON selected in From and INI in To.
Paste the JSON, or press Open file to read a .json file from your device.
Read the INI output: deeper nesting becomes dotted section names such as [database.pool].
Press Download INI to save the .ini file, or Copy INI to paste it into a config.
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.
The rest of the article, and all 8 questions about Data Converter, are on the Data Converter page.
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, 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.
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.
Still stuck? Ask about Data Converter and anybody who knows can answer. No account needed.
Same job, other tools: TSV to JSON – Convert tab-separated values, such as a paste from Excel, into JSON · JSON to YAML – Turn JSON into clean, readable YAML for configs.
In the collections JSON Tools · Developer Converters.