JSON naar TOML
Gratis online JSON-naar-TOML-converter die automatisch JSON-objecten omzet naar TOML v1.0-configuratie, met ondersteuning voor geneste tabellen ([section]), subtabellen ([a.b]) en tabel-arrays ([[items]]). Genereer direct Cargo.toml of pyproject.toml. Alle verwerking verloopt volledig lokaal.
Gerelateerde aanbevelingen
Wat is TOML? En waarom JSON naar TOML converteren?
TOML staat voor Tom's Obvious, Minimal Language en is een configuratiebestandsformaat dat in 2013 werd gepubliceerd door Tom Preston-Werner, medeoprichter van GitHub. Het ontwerpdoel is: een duidelijke (obvious), minimalistische (minimal) taal die gemakkelijk door mensen te lezen is en geen ambiguïteit kent. TOML 1.0 werd in 2021 de stabiele versie (toml-lang/toml) en is inmiddels het standaardconfiguratieformaat voor Rust/Cargo, Python PEP 621 (pyproject.toml), Hugo, Prettier, Deno, Taplo en vele andere tools.
TOML biedt in configuratiescenario's een paar duidelijke voordelen ten opzichte van JSON en YAML: ① Geen inspringvalkuilen zoals bij YAML — YAML gebruikt inspringing om structuur aan te geven; een foute inspringing verandert de betekenis volledig (een list wordt bijvoorbeeld een string). TOML gebruikt [table] om de structuur expliciet te declareren, zonder ambiguïteit. ② Beter geschikt voor configuratie dan JSON — JSON met al zijn aanhalingstekens en accolades is omslachtig bij complexe configuratie; TOML's key = value-syntaxis is veel overzichtelijker en opmerkingen worden native ondersteund. ③ Duidelijk typesysteem — TOML maakt onderscheid tussen zeven types: integer, float, string, boolean, datetime, array en table. Er is geen twijfel of een getal in JSON een integer of een float is, en geen last van het Noorwegen-probleem uit YAML 1.1 (waarbij NO als booleaanse false wordt geïnterpreteerd).
De kernstructuur van TOML bestaat uit vier elementen: ① Sleutel-waardeparen (key = value) voor basisconfiguratie. ② Tabellen (Table), gedeclareerd met [name], voor naamgegeven groepen, met ondersteuning voor nesten ([a.b.c]). ③ Tabel-arrays (Array of Tables), gedeclareerd met [[name]], voor lijsten van gelijkvormige objecten — veelgebruikt voor multi-omgevingsconfiguratie, pluginlijsten en afhankelijkheidslijsten. ④ Arrays, met ondersteuning voor inline notatie van primitieve typen ([1, 2, 3]) en een multiline-variant. Deze tool herkent bij de conversie automatisch de JSON-structuur en kiest de meest geschikte TOML-syntaxis.
Veelvoorkomende redenen om JSON naar TOML om te zetten: ① Het project migreert van het Node.js-ecosysteem naar Rust of Python, en de configuratie moet worden verenigd in TOML. ② Het team besluit verspreide JSON-configuratie te bundelen in TOML en met de [section]-structuur de leesbaarheid van diep geneste JSON te verbeteren. ③ TOML vervangt YAML om vreemde bugs door inspringfouten te elimineren. ④ In CI/CD wordt door upstream aangeleverde JSON-metadata omgezet naar TOML voor downstream tooling. Deze tool ondersteunt al deze scenario's.
De conversie is in wezen een AST-mapping: JSON.parse() zet de tekst om in een JavaScript-object (de AST), waarna recursief elke node wordt doorlopen — strings, numbers, booleans en null worden gemapt naar de bijbehorende TOML-scalars; arrays worden op basis van hun elementen verdeeld in inline arrays of tabel-arrays; geneste objecten worden tabellen of subtabellen. Ten slotte wordt de tekst volgens de TOML-specificatie uitgevoerd. Dankzij deze gestructureerde mapping is het resultaat syntactisch 100% geldig en bevat het geen formatteringsfouten.
Toepassingsgevallen
- Cargo.toml voorbereiden voor een Rust-project: zet JSON-configuratie in de stijl van package.json / tsconfig.json om naar TOML voor de Cargo-toolchain
- pyproject.toml genereren voor een Python-project: zet setup.py / setup.cfg-achtige JSON-metadata om naar het PEP 621-formaat pyproject.toml
- Configuratie voor Hugo / Deno / Prettier: migreer JSON-toolconfiguratie naar TOML en profiteer van de duidelijkere tabelstructuur
- DevOps-tooling migreren: maak CI/CD-pipelineconfiguratie consistent bij de overstap van JSON naar TOML en verlaag de onderhoudskosten voor het team
- Configuratieformaten vergelijken: zet bestaande JSON-configuratie snel om naar TOML om formaten te vergelijken en de beste configuratietaal voor uw project te kiezen
- TOML-syntaxis leren: gebruik de tool wanneer u een bestaande JSON-structuur hebt en direct wilt zien hoe TOML geneste tabellen en tabel-arrays weergeeft
Hoe te gebruiken
- Plak de JSON-inhoud in de editor aan de linkerkant, of klik op de uploadknop om een .json- of .txt-bestand te kiezen. U kunt ook op "Voorbeeld" klikken om een volledig genest voorbeeld te laden
- De tool parseert de JSON realtime en genereert rechts de configuratiecode volgens de TOML v1.0-specificatie. Sleutel-waardeparen, geneste tabellen en tabel-arrays krijgen automatisch de juiste syntaxis
- Bij JSON-syntaxisfouten verschijnt een rode foutmelding. Klik om door te gaan naar de JSON-reparatietool om veelvoorkomende fouten zoals ontbrekende komma's automatisch te herstellen
- Bent u tevreden met het resultaat, klik dan op "Kopiëren" om de TOML te kopiëren, of op "Downloaden" om het bestand op te slaan als config.toml voor gebruik in uw project
Functies
- Standaard TOML v1.0-uitvoer: de gegenereerde configuratiebestanden werken direct in Cargo, Poetry, Hugo, Prettier en elke andere tool die TOML ondersteunt
- Automatische mapping van geneste objecten: meerlaagse geneste JSON wordt automatisch omgezet naar TOML-tabellen ([a]) en subtabellen ([a.b.c]), duidelijk en leesbaar
- Slimme herkenning van tabel-arrays: arrays van objecten (zoals een lijst databaseverbindingen) worden automatisch omgezet naar TOML-tabel-arrays ([[items]]), conform de officiële specificatie
- Veilige string-escaping: dubbele aanhalingstekens, backslashes, nieuwe regels, tabs en andere speciale tekens worden automatisch volgens de TOML-regels geëscaped, zodat ongeldige tekens geen parse-fouten veroorzaken
- Automatische type-mapping: JSON-strings/numbers/booleans/null worden automatisch vertaald naar TOML string/integer/float/boolean, null wordt een lege string
- Realtime tweerichtingsbewerking: plak JSON links en bekijk direct het TOML-resultaat rechts, conversie bij elke toetsaanslag zonder op een knop te drukken
- Snel voorbeeld uitproberen: laad met één klik een volledig voorbeeld met geneste objecten, arrays en tabel-arrays om het TOML-resultaat direct te zien
- Bestand uploaden en downloaden: ondersteunt het uploaden van .json/.txt-bestanden om inhoud te lezen, en download het resultaat met één klik als config.toml
- Versleepbare panelen en geschiedenis: op de desktop kan de breedte van de panelen worden aangepast door te slepen; de laatste 200 items worden automatisch bewaard
- Direct doorgaan naar JSON-formatter: ga na de conversie met één klik door naar de JSON-formatter om uw JSON-bron verder te verfraaien, valideren of comprimeren
- Puur frontend, lokale verwerking: alle parsing en conversie gebeurt in de JavaScript van de browser; configuratie met gevoelige sleutels of verbindingsreeksen wordt nooit geüpload
Veelgestelde vragen
Hoe zet ik JSON om naar een TOML-configuratiebestand?
Plak uw JSON in het invoerveld aan de linkerkant. De tool parseert het JSON-object automatisch en zet het om naar configuratiebestandsindeling volgens de TOML v1.0-specificatie. Sleutel-waardeparen worden key = value, geneste objecten worden TOML-tabellen ([section]) en subtabellen ([a.b]), en arrays worden op basis van hun inhoud automatisch verdeeld in inline arrays of tabel-arrays ([[items]]). Klik op de voorbeeldknop om een genest voorbeeld te laden en het effect te bekijken. Het resultaat kan direct als config.toml worden gedownload voor gebruik in uw project.
Welke scenario's passen bij TOML, YAML en JSON?
JSON is ideaal voor API-gegevensuitwisseling en dataoverdracht tussen frontend en backend, en is de de facto standaard voor REST-interfaces. YAML is geschikt voor complexe datastructuren en CI/CD-configuratie (GitHub Actions, Ansible, Kubernetes): goed leesbaar, ondersteunt opmerkingen en meerdere documenten. TOML is geschikt voor duidelijke configuratiebestanden (Rust/Cargo, Python pyproject, Hugo, Prettier): beknopte syntax, weinig ambiguïteit, geen valkuilen met inspringen. Geen enkele is objectief beter; het hangt af van het scenario: kies TOML voor configuratiebestanden, YAML voor CI/CD-configuratie, en JSON voor API-data.
Hoe worden geneste JSON-objecten in TOML weergegeven?
TOML gebruikt tabellen (Tables) om geneste structuren weer te geven. Eén niveau nesten, zoals {"database": {"host": "localhost"}}, wordt [database] host = "localhost". Meerdere niveaus nesten, zoals {"server": {"ssl": {"enabled": true}}}, wordt [server.ssl] enabled = true. Deze tool herkent automatisch het nestniveau en genereert de bijbehorende tabelheader-paden, zonder handmatige aanpassingen.
Hoe worden JSON-arrays in TOML omgezet?
TOML maakt onderscheid tussen twee array-syntaxis: ① arrays van primitieve typen (zoals ["a", "b", 1, 2]) worden inline arrays key = ["a", "b", 1, 2], omgeven door vierkante haken en gescheiden door komma's. ② arrays van objecten (zoals [{"name": "primary"}, {"name": "replica"}]) worden tabel-arrays [[items]], waarbij elk object wordt voorafgegaan door de header [[items]] en de velden eronder worden uitgeschreven. Deze tool detecteert automatisch het type array en kiest de meest geschikte TOML-syntaxis.
Kan de gegenereerde TOML direct in Cargo.toml worden gebruikt?
Ja. De tool volgt strikt de officiële TOML v1.0-specificatie (github.com/toml-lang/toml). De uitvoer kan direct worden gebruikt in Cargo (Rust-pakketbeheer), Poetry/pyproject (Python-pakketbeheer), Hugo (statische sitegenerator), Prettier, Deno, Taplo en elke andere tool die TOML ondersteunt. Let op: als u specifieke [package]- of [dependencies]-secties voor Cargo.toml nodig heeft, moet u de bijbehorende velden (zoals name, version, edition en crate-afhankelijkheidstabellen) zelf aanvullen volgens de Cargo-specificatie.
Wat gebeurt er met null-waarden in JSON?
TOML kent geen null-type. Daarom wordt JSON null omgezet naar een lege string "" (de meest gangbare equivalente voorstelling). Als uw TOML-consumer speciale eisen stelt aan null-velden (bijvoorbeeld een optional-veld voor een crate in [dependencies]), moet u de overeenkomstige regel na de conversie handmatig aanpassen.
Hoe worden dubbele aanhalingstekens en nieuwe regels in strings verwerkt?
TOML-strings moeten tussen dubbele aanhalingstekens staan. Dubbele aanhalingstekens, backslashes, nieuwe regels (\n), returns (\r) en tabs (\t) binnen de string moeten volgens de TOML-regels worden geëscaped. Deze tool verwerkt deze escaping automatisch. Zo wordt He said "Hello" in JSON in TOML He said \"Hello\"; nieuwe regels in een multiline-string worden \n. U hoeft niets handmatig te escapen; de uitvoer kan direct door een TOML-parser worden gelezen.
Ondersteunt de gegenereerde TOML datum- en tijdstypen?
Deze tool accepteert alleen JSON-tekst als invoer, en de JSON-standaard kent geen native datum-/tijdtype (gebruikelijk is een ISO 8601-string, zoals "2026-01-01T00:00:00Z"). De geconverteerde TOML behoudt deze waarden als string (key = "2026-01-01T00:00:00Z"). Wilt u de native local datetime/offset datetime-types van TOML, dan moet u de string handmatig vervangen door een kale TOML-datumliteral (zoals 2026-01-01T00:00:00).
Worden mijn configuratiegegevens geüpload bij lokale conversie in de browser?
Nee. Alle JSON-parsing, TOML-generatie en string-escaping gebeurt volledig in de JavaScript-engine van uw browser. Er worden geen gegevens via het netwerk naar een server gestuurd; de tool werkt zelfs zonder internetverbinding. JSON met gevoelige informatie zoals databasewachtwoorden, API-sleutels of interne adressen kunt u dus met een gerust hart converteren.
Probleemoplossing
JSON-foutmelding "Unexpected token", wat nu?
Dit is een JSON-syntaxisfout. Veelvoorkomende oorzaken: ① een overbodige komma aan het einde (trailing comma), zoals {"a":1,}; ② enkele aanhalingstekens rond strings, zoals {'a':1} (JSON vereist dubbele aanhalingstekens); ③ sleutels zonder aanhalingstekens, zoals {a:1}; ④ opmerkingen met // of /* */ (niet toegestaan in de JSON-standaard). Gebruik onze JSON-reparatietool om dit soort fouten automatisch te herstellen en plak het resultaat daarna in deze tool.
De geconverteerde TOML geeft in Cargo de foutmelding "invalid TOML"?
Meestal is er een naamconflict op velden of ontbreken verplichte velden. TOML-parsers zijn streng voor tabelheader-paden, dubbele sleutels en char-escaping. Controleer: ① of er dubbele sleutels in hetzelfde bereik voorkomen; ② of bijzondere tekens in strings correct zijn geëscaped (dubbele aanhalingstekens, backslashes, nieuwe regels); ③ of de nesting niet te diep is (TOML 1.0 adviseert maximaal 5 niveaus); ④ of er geen verplichte [package]-sectie voor Cargo ontbreekt. De uitvoer van deze tool is syntactisch 100% geldig; het probleem zit doorgaans bij de verbruiker (zoals veldnamen die niet aan de Cargo-specificatie voldoen).
Mijn array van objecten is omgezet naar een inline array in plaats van een tabel-array?
Een JSON-array wordt alleen omgezet naar een inline array ["a","b"] wanneer alle elementen primitieve typen zijn (string/number/boolean/null). Arrays van objecten (zoals [{"name":"x"}]) worden omgezet naar een tabel-array [[items]]. Als uw array van objecten ten onrechte als inline array wordt herkend, bevat de array waarschijnlijk niet-objectelementen. Controleer: ① of de array is gemengd met strings of getallen; ② of de neststructuur is verbroken.
Sommige sleutels staan na de conversie tussen aanhalingstekens, hoe haal ik die weg?
TOML staat in sleutels alleen letters, cijfers, underscores en koppeltekens toe ([A-Za-z0-9_-]). Bevat uw JSON-sleutel bijzondere tekens (zoals spaties, punten, Chinese tekens, emoji of gereserveerde woorden), dan zet de tool deze automatisch tussen dubbele aanhalingstekens om de TOML geldig te houden: {"my key": 1} wordt bijvoorbeeld "my key" = 1. Accepteert uw downstream-tool geen sleutels tussen aanhalingstekens, wijzig de JSON-sleutels dan handmatig naar toegestane tekens (A-Z a-z 0-9 _ -) voordat u converteert.
De browser hapert bij de conversie van grote bestanden, wat kan ik doen?
De tool is geoptimaliseerd voor realtime conversie (bij elke toetsaanslag), maar extreem grote bestanden (>1 MB, honderdduizenden regels) kunnen nog steeds voor problemen zorgen. Tips: ① controleer eerst met de JSON-formatter of de JSON geldig is; ② converteer in delen (bijvoorbeeld per topsleutel); ③ zorg dat de browser voldoende geheugen heeft; ④ voor zeer grote configuratiebestanden (10 MB+) kunt u beter een commandlinetool zoals taplo of tomlq gebruiken. Deze tool is bedoeld voor dagelijkse configuratiescenario's (KB tot enkele honderden KB).
Woordenlijst
- TOML
- Tom's Obvious, Minimal Language: een configuratieformaat met een beknopte, eenduidige syntax. Het is de standaard voor Rust Cargo, Python pyproject en Hugo.
- Table (tabel)
- Een in TOML met [name] gedeclareerde naamgegeven groep, vergelijkbaar met een object in JSON, met ondersteuning voor nesting via punten, zoals [server.ssl].
- Array of Tables (tabel-array)
- Een in TOML met [[name]] gedeclareerde lijst van gelijkvormige objecten. Elke [[name]]-sectie bevat alle velden van één object, vergelijkbaar met een array van objecten in JSON.
- Inline Table (inline tabel)
- Een syntaxis uit TOML 1.0 waarmee een eenvoudig object in één regel kan worden gedeclareerd met { key = value, key = value }, geschikt voor platte objecten zonder naamgeving.
- Cargo.toml
- Het standaardconfiguratiebestand van een Rust-project. Het definieert package-metadata, dependencies, dev-dependencies, features en meer, in TOML-formaat.
- pyproject.toml
- Het standaardconfiguratiebestand van een Python-project (PEP 621). Het definieert build-system, projectmetadata, dependencies en tool-configuratie (black, pytest, mypy, enzovoort).
- TOML v1.0
- TOML 1.0 is de in 2021 officieel uitgebrachte stabiele versie. Deze tool volgt deze specificatie strikt (github.com/toml-lang/toml/blob/main/toml.md).
- Genest JSON-object
- Een JSON-object dat andere objecten bevat. Het komt overeen met een TOML-tabel ([section]) of subtabel ([a.b.c]).
- TOML-escaping
- Bijzondere tekens in TOML-strings, zoals dubbele aanhalingstekens, backslashes en nieuwe regels, moeten met een backslash worden geëscaped (\", \\, \n). Deze tool doet dat automatisch.
- Configuratiebestand (Config File)
- Een bestand met instellingen dat bij het opstarten van een applicatie wordt gelezen, gescheiden van de code zodat het eenvoudig aan te passen is. TOML is een van de feitelijke standaarden voor configuratiebestanden.
Mapping van JSON- naar TOML-types
Deze tool past de volgende regels toe om JSON-types naar TOML-types te converteren:
| JSON-type | TOML-type | TOML-syntaxis | Toelichting |
|---|---|---|---|
| string | string | key = "value" | TOML-strings moeten tussen dubbele aanhalingstekens staan |
| integer | integer | key = 8080 | Gehele getallen hebben geen decimaalteken |
| float | float | key = 3.14 | Floating point vereist een decimaalteken |
| boolean | boolean | key = true | TOML gebruikt alleen kleine letters true / false |
| null | string (leeg) | key = "" | TOML kent geen null; null wordt een lege string |
| array[primitive] | array | key = ["a", "b"] | Arrays van primitieven gebruiken inline vierkante haken |
| array[object] | array of tables | [[items]]
key = value | Arrays van objecten gebruiken [[name]] als tabel-array |
| object | table | [name]
key = value | Objecten worden gedeclareerd met [name] |
Overzicht van TOML-stringescaping
Bijzondere tekens die in een TOML-string moeten worden geëscaped:
| Origineel teken | Na TOML-escaping | Naam | Voorbeeldsituatie |
|---|---|---|---|
" | \" | Dubbel aanhalingsteken | Dubbele aanhalingstekens in een string nesten |
\ | \\ | Backslash | Windows-pad C:\Users |
Nieuwe regel | \n | Newline | Multiline-string comprimeren |
Tab | \t | Tab | Tab-velden |
Regelterugloop | \r | Carriage Return | Windows-regeleinde CRLF |
\b | \b | Backspace | Backspace-teken |
\f | \f | Form Feed | Paginateken |
U+0000 | \u0000 | Unicode 0 | Besturingstekens moeten met \u worden geëscaped |
JSON-naar-TOML-conversievoorbeelden
TOML-uitvoer voor complexe JSON-invoerstructuren:
| Structuur | Voorbeeld |
|---|---|
| JSON-invoer | { "name": "app", "port": 8080 } |
| TOML-uitvoer | name = "app"
port = 8080 |
| JSON-invoer | { "server": { "host": "0.0.0.0", "port": 443 } } |
| TOML-uitvoer | [server]
host = "0.0.0.0"
port = 443 |
| JSON-invoer | { "hosts": [{"ip":"10.0.0.1"},{"ip":"10.0.0.2"}] } |
| TOML-uitvoer | [[hosts]]
ip = "10.0.0.1"
[[hosts]]
ip = "10.0.0.2" |
Privacy & Security
Alle JSON-parsing, TOML-generatie, string-escaping en bestandslezing in deze tool worden volledig uitgevoerd in de JavaScript van uw browser. Uw JSON-inhoud en de gegenereerde TOML-configuratie worden niet via het netwerk naar een server gestuurd en ook niet vastgelegd of geanalyseerd. JSON met gevoelige informatie zoals databasewachtwoorden, API-sleutels of interne adressen kunt u dus met een gerust hart converteren. De lokale geschiedenis wordt uitsluitend bewaard in de localStorage van uw browser; door de browser te sluiten of de cache te wissen verwijdert u deze.
Authoritative References
- toml-langOfficiële TOML-specificatie v1.0
- GitHubTOML GitHub-repository
- WikipediaTOML - Wikipedia
- Officiële Rust-documentatieReferentie voor Cargo.toml-velden
- JSON Compress
- CSV naar JSON Converter
- JSON naar CSV
- JSON Diff
- JSON Escape / Unescape
- JSON afvlakken
- JSON Formatter
- JSON-generator
- JSONPath Online Query
- JSON samenvoegen
- JSON repareren
- JSON Schema Validator
- JSON sorteren
- JSON Stringify
- JSON naar HTML-tabel
- JSON naar Java
- JSON to Markdown
- JSON naar SQL
- JSON naar TOML
- JSON naar TypeScript
- XML naar JSON
- JSON naar XML
- YAML naar JSON
- JSON naar YAML
- JSON naar Python
- JSON naar Go
- JSON naar Rust
- JSON naar Swift
- JSON naar C#
- JSON naar C++
- JSON naar PHP