Skip to content

JSON naar TOML Converter

Plak JSON, krijg direct TOML in je browser. Veilige null-afhandeling, controle op hoofdtabel, output klaar voor Cargo.toml en pyproject.toml. 100% privé.

Geen tracking Draait in je browser Gratis
0 tekens
TOML Uitvoer
0 regels
Beoordeeld op TOML 1.0.0-specificatieconformiteit, handhaving van de hoofdtabel en transparante null-afhandeling — Go Tools Engineering Team · Jul 2, 2026

Wat is TOML en waarom omzetten vanuit JSON?

TOML (Tom's Obvious, Minimal Language) is een configuratiebestandsformaat gebouwd om ondubbelzinnig te zijn en gemakkelijk leesbaar en bewerkbaar voor mensen. Het is het standaard configuratieformaat voor het Rust-ecosysteem (Cargo.toml), moderne Python-packaging (pyproject.toml) en tools zoals Hugo, Netlify, Poetry en Foundry. JSON is het universele machineformaat dat tools en API's produceren. JSON naar TOML omzetten is gebruikelijk wanneer je gestructureerde gegevens als JSON hebt maar een door mensen bewerkbare TOML-config als bestemming nodig hebt — het genereren van een Cargo.toml of pyproject.toml, of het omzetten van de JSON-instellingen van een applicatie in een leesbaar configuratiebestand.

TOML is gestructureerder dan JSON, en deze tool verandert die striktheid in begeleiding in plaats van cryptische fouten:

**1. Handhaving van hoofdtabel.** Elk TOML-document is aan de basis een tabel — een kale array of scalar is geen geldige TOML. In plaats van gebroken uitvoer te produceren voor invoer met een array op het hoogste niveau, detecteert deze tool het en vertelt je precies hoe je je gegevens onder een sleutel moet inpakken, zodat je altijd geldige TOML of een duidelijke uitleg krijgt.

**2. Veilige, transparante null-afhandeling.** JSON heeft null; TOML niet. De meeste converters lopen ofwel vast of gooien gegevens stilletjes weg. Deze tool is expliciet: objectsleutels met null-waarden worden verwijderd en de verwijderde sleutels worden in een waarschuwing vermeld, en een null binnen een array — die geen geldige TOML-weergave heeft — produceert een precieze, padwijzende fout. Je wordt nooit verrast door ontbrekende gegevens.

**3. Idiomatische TOML-uitvoer.** Geneste objecten worden [tables], diep geneste objecten worden tabellen met puntnotatie ([tool.ruff]), en arrays van objecten worden arrays van tabellen ([[section]]) — de vorm die echte Cargo.toml- en pyproject.toml-bestanden gebruiken. De conversie wordt aangedreven door de dependency-vrije, TOML 1.0.0-conforme smol-toml-bibliotheek.

**4. 100% browsergebaseerde privacy.** Je JSON — die inloggegevens, tokens of interne servicedetails kan bevatten — verlaat nooit je browser. Geen upload, geen server, geen logging. Bevestig het in het tabblad Netwerk van je browser.

Heb je de omgekeerde richting nodig? Gebruik de TOML naar JSON Converter. Werk je met andere configuratieformaten? Probeer de JSON naar YAML Converter en YAML naar JSON Converter, of ruim je JSON-invoer eerst op met de JSON Formatter. Elk formaat heeft zijn niche: JSON voor machine-uitwisseling, TOML voor door mensen bewerkte applicatie- en toolingconfiguratie, en YAML voor diep geneste infrastructuurmanifesten. Deze converter laat je van JSON naar TOML gaan zonder ook maar één regel code te schrijven.

// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';

const data = JSON.parse(`{
  "package": { "name": "my-app", "version": "1.0.0" },
  "dependencies": { "serde": { "version": "1.0" } }
}`);

// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);

console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0"

Belangrijkste functies

Live conversie

De TOML-uitvoer wordt direct bijgewerkt terwijl je JSON typt of plakt — geen knop Converteren nodig. Grote invoer (>200 KB) schakelt automatisch over naar handmatige modus om de browser responsief te houden.

Begeleiding bij hoofdtabel

TOML-documenten moeten aan de basis een tabel zijn. Als het hoogste niveau van je JSON een array of scalar is, vertelt de tool je precies hoe je het onder een sleutel moet inpakken — geen gebroken uitvoer, geen giswerk.

Veilige null-afhandeling

TOML heeft geen null. Objectsleutels met null-waarden worden verwijderd en in een waarschuwing vermeld; een null binnen een array veroorzaakt een precieze, padwijzende fout. Je weet altijd wat er met je gegevens is gebeurd.

Idiomatische TOML-uitvoer

Geneste objecten worden [tables], diep geneste objecten worden tabellen met puntnotatie ([tool.ruff]), en arrays van objecten worden arrays van tabellen ([[section]]) — de vorm die echte Cargo.toml en pyproject.toml gebruiken.

Bewustzijn van float en geheel getal

TOML scheidt gehele getallen van floats, dus een float zoals 1.0 wordt geschreven als het gehele getal 1. De tool waarschuwt je wanneer deze coercie het type van een waarde verandert, zodat rondrit-verrassingen zichtbaar zijn.

100% browsergebaseerde privacy

Al het parseren draait lokaal in je browser. Je JSON — inclusief inloggegevens, tokens en interne servicedetails — wordt nooit geüpload, opgeslagen of gelogd.

Voorbeelden

Cargo.toml-bron

{
  "package": {
    "name": "my-app",
    "version": "1.0.0",
    "edition": "2021"
  },
  "dependencies": {
    "serde": { "version": "1.0", "features": ["derive"] },
    "tokio": { "version": "1", "features": ["full"] }
  }
}

Genereer een Rust Cargo.toml uit JSON — geneste objecten worden [tables] en inline-objecten worden inline-tabellen, precies zoals Cargo verwacht.

pyproject.toml-bron

{
  "build-system": {
    "requires": ["hatchling"],
    "build-backend": "hatchling.build"
  },
  "project": {
    "name": "my-package",
    "version": "0.3.1",
    "requires-python": ">=3.10",
    "dependencies": ["requests>=2.31", "pydantic>=2.0"]
  }
}

Genereer een PEP 621 pyproject.toml uit JSON-projectmetadata — handig wanneer een tool of API JSON produceert die je in TOML-vorm nodig hebt.

App-instellingen

{
  "title": "My Service",
  "debug": false,
  "port": 8080,
  "database": {
    "host": "localhost",
    "port": 5432,
    "pool_size": 10
  },
  "features": ["auth", "metrics", "tracing"]
}

Zet een plat object met applicatie-instellingen om naar TOML — scalars op het hoogste niveau blijven bovenaan en het geneste database-object wordt een [database]-tabel.

Servers (array van tabellen)

{
  "servers": [
    { "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
    { "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
  ]
}

Een array van objecten wordt een array van tabellen ([[servers]]) in TOML — de idiomatische manier om herhaalde secties uit te drukken.

Netlify-config-bron

{
  "build": {
    "command": "npm run build",
    "publish": "dist",
    "environment": { "NODE_VERSION": "20" }
  },
  "redirects": [
    { "from": "/old", "to": "/new", "status": 301, "force": true }
  ]
}

Verander een JSON-deployment-config in netlify.toml, met geneste [build]- en [build.environment]-tabellen en een [[redirects]]-array van tabellen.

Config met puntstructuur

{
  "tool": {
    "ruff": { "line-length": 100, "target-version": "py310" },
    "black": { "line-length": 100 }
  }
}

Diep geneste JSON-objecten worden TOML-tabellen met puntnotatie zoals [tool.ruff] en [tool.black] — de vorm die pyproject.toml-tooling verwacht.

Hoe te gebruiken

  1. 1

    Plak je JSON

    Voer je JSON in of plak het in het invoerveld hierboven. Je kunt ook op 'Voorbeeld laden' klikken om een Cargo.toml-bron, pyproject.toml-bron of object met app-instellingen te proberen.

  2. 2

    Bekijk live TOML-uitvoer

    TOML verschijnt direct in het uitvoerpaneel. Als je JSON een array op het hoogste niveau of null-waarden heeft, legt de tool precies uit wat je moet doen in plaats van gebroken uitvoer te produceren.

  3. 3

    Kopiëren of downloaden

    Klik op Kopiëren om de TOML naar je klembord te halen, of op Downloaden om het als .toml-bestand op te slaan, klaar voor Cargo, Poetry, Hugo, Netlify of elke tool die TOML leest.

Veelvoorkomende JSON-naar-TOML-valkuilen

Array of scalar op het hoogste niveau

TOML-documenten moeten aan de basis een tabel (object) zijn. Een JSON-array of losse waarde kan geen TOML-document zijn. Wikkel het onder een sleutel om het om te zetten.

✗ Fout
[1, 2, 3]
✓ Correct
{ "items": [1, 2, 3] }

Null-waarden in objecten

TOML heeft geen null-type, dus een objectsleutel met een null-waarde wordt tijdens de conversie verwijderd. De tool waarschuwt je welke sleutels zijn verwijderd. Als je de sleutel wilt behouden, geef er een echte waarde of een lege string aan.

✗ Fout
{ "name": "a", "nickname": null }
✓ Correct
{ "name": "a", "nickname": "" }

Null binnen een array

Een TOML-array kan geen null of gat bevatten, dus JSON zoals [1, null, 3] heeft geen geldige TOML-uitvoer. Verwijder de null of vervang het door een echte waarde voordat je converteert.

✗ Fout
{ "ports": [8001, null, 8003] }
✓ Correct
{ "ports": [8001, 8003] }

Ongeldige JSON-syntaxis

De invoer moet eerst geldige JSON zijn. Afsluitende komma's, enkele aanhalingstekens en sleutels zonder aanhalingstekens zijn veelvoorkomende fouten die uit JavaScript worden gekopieerd, die geen geldige JSON zijn en vóór het converteren moeten worden gecorrigeerd.

✗ Fout
{ 'name': 'a', 'active': true, }
✓ Correct
{ "name": "a", "active": true }

Float met nul-fractie wordt geheel getal

TOML schrijft een float waarvan het fractionele deel nul is (1.0) als het gehele getal 1, wat het type bij een rondrit verandert. De tool waarschuwt je. Als de waarde conceptueel een geheel getal is, is dit prima; als het een float moet blijven, kan TOML dat voor hele getallen niet behouden.

✗ Fout
{ "ratio": 1.0 }  →  ratio = 1
✓ Correct
{ "ratio": 1.5 }  →  ratio = 1.5

Object en array bij dezelfde sleutel mengen

Een JSON-sleutel moet consistent een object of een array zijn om op een tabel of array van tabellen te mappen. Inconsistente vormen binnen een dataset kunnen verwarrende TOML produceren — normaliseer eerst de structuur.

✗ Fout
{ "server": { "a": 1 }, "server": [1] }
✓ Correct
{ "server": { "a": 1 }, "servers": [1] }

Veelvoorkomende toepassingen

Cargo.toml genereren
Verander gestructureerde JSON — van een scaffolding-tool, een API of een script — in een geldige Rust Cargo.toml, met automatisch geproduceerde geneste [dependencies]-tabellen en inline-tabellen.
pyproject.toml genereren
Zet JSON-projectmetadata om naar een PEP 621 pyproject.toml, inclusief [tool.*]-tabellen met puntnotatie, zodat tooling die JSON uitgeeft Python-packaging-configuratie kan produceren.
Door mensen bewerkbare config uit JSON
Transformeer de JSON-instellingen van een applicatie in een leesbaar TOML-configuratiebestand dat mensen comfortabel kunnen bewerken, met naderhand met de hand toegevoegd commentaar.
Deployment-config genereren
Produceer netlify.toml, foundry.toml of vergelijkbare platformconfiguraties uit JSON, en verander geneste objecten en arrays van objecten in de tabellen en arrays van tabellen die die tools verwachten.
Migratie van configuratieformaat
Verplaats configuratie van een JSON-gebaseerd systeem naar een TOML-gebaseerd systeem, met deze converter als brug en de null- en hoogste-niveau-waarschuwingen om alles op te vangen wat niet zal mappen.
TOML-structuur prototypen
Schets een config als JSON — een formaat dat de meeste ontwikkelaars vloeiend typen — en zet het vervolgens om naar TOML om de idiomatische opmaak van tabellen en arrays van tabellen te zien voordat je het in een repo vastlegt.

Technische details

RFC 8259 JSON-parsing
JSON-invoer wordt geparseerd met de native JSON.parse() van de browser, die volledig RFC 8259-conform is. Vóór de serialisatie controleert de tool dat de waarde op het hoogste niveau een object is en scant op null-waarden om te waarschuwen voor verwijderde objectsleutels of een null binnen een array met een precies pad af te wijzen.
TOML 1.0.0-uitvoer via smol-toml
TOML wordt gegenereerd met de smol-toml-bibliotheek, een dependency-vrije, volledig TOML 1.0.0-conforme serializer. Geneste objecten worden tabellen, diep geneste objecten worden tabellen met puntnotatie, en arrays van objecten worden arrays van tabellen. Floats met een fractioneel deel van nul worden volgens de TOML-regels als gehele getallen geschreven, met een waarschuwing.
100% browsergebaseerd — geen upload, geen server
Alle verwerking gebeurt in de JavaScript-engine van je browser. Er worden op geen enkel moment gegevens verzonden. Invoer groter dan 200 KB schakelt over van live naar handmatige modus (een expliciete klik op Converteren) om de interface responsief te houden.

Best practices

Wikkel arrays op het hoogste niveau onder een sleutel
Als je gegevens van nature een JSON-array zijn, wikkel ze dan in een object met een beschrijvende sleutel ({ "items": [...] }) vóór het converteren. TOML-documenten moeten aan de basis een tabel zijn, en de sleutel geeft je array een duidelijke naam in de uitvoer.
Beslis wat nulls moeten betekenen
Beslis vóór het converteren of een null-veld moet verdwijnen (de sleutel verwijderen) of een waarde moet dragen. TOML verwijdert object-nulls en wijst array-nulls af, dus ze eerst in je JSON oplossen geeft voorspelbare, complete uitvoer.
Gebruik geneste objecten voor groepering
Groepeer gerelateerde instellingen in geneste objecten in je JSON — ze worden schone [tables] en tabellen met puntnotatie in TOML, wat veel leesbaarder is dan een platte lijst met sleutels, passend bij hoe Cargo- en pyproject-configuraties zijn georganiseerd.
Valideer eerst je JSON
Als je JSON handgeschreven is of uit een onbetrouwbare bron komt, valideer het dan met onze JSON Formatter om afsluitende komma's en aanhalingsfouten op te vangen voordat je naar TOML converteert.
Voeg commentaar toe na het converteren
JSON heeft geen commentaar, dus niets gaat over. Aangezien TOML #-commentaar ondersteunt, voeg je documentatie met de hand toe aan de gegenereerde TOML — een van de belangrijkste redenen om door mensen bewerkte configuratie in de eerste plaats naar TOML te verplaatsen.

Veelgestelde vragen

Hoe zet ik JSON online om naar TOML?
Plak je JSON in het invoerveld hierboven. De tool parseert het en produceert direct TOML in je browser — je hoeft nergens op te klikken. Zodra de TOML in het uitvoergebied verschijnt, klik je op Kopiëren om het naar je klembord te halen of op Downloaden om het als .toml-bestand op te slaan. Alles draait lokaal, dus je JSON verlaat nooit je apparaat. Twee dingen om te weten voordat je begint: het hoogste niveau van je JSON moet een object zijn (geen array), en null-waarden hebben geen TOML-equivalent — de tool legt beide duidelijk uit als ze zich voordoen.
Wat is TOML en waarom zou je JSON ernaar omzetten?
TOML (Tom's Obvious, Minimal Language) is een configuratieformaat dat is ontworpen om gemakkelijk leesbaar en schrijfbaar te zijn voor mensen, met ondubbelzinnige semantiek. Het is het configuratieformaat voor Rusts Cargo, Pythons pyproject.toml, Hugo, Netlify, Poetry en meer. Je zet JSON om naar TOML wanneer een tool of API je JSON geeft maar de bestemming TOML verwacht — bijvoorbeeld het genereren van een Cargo.toml of pyproject.toml uit gestructureerde gegevens, of het omzetten van de JSON-instellingen van een applicatie in een door mensen bewerkbaar TOML-configuratiebestand.
Waarom moet het hoogste niveau van mijn JSON een object zijn?
TOML-documenten zijn altijd een tabel (een set sleutel-waardeparen) aan de basis — de specificatie staat geen kale array, string of getal op het hoogste niveau toe. Dus een JSON-array zoals [1, 2, 3] of een losse waarde zoals 42 kan niet direct worden omgezet. De oplossing is het onder een sleutel te wikkelen: { "items": [1, 2, 3] } wordt netjes items = [1, 2, 3]. Deze tool detecteert een hoogste niveau dat geen object is en vertelt je precies hoe je het moet inpakken, in plaats van gebroken uitvoer te produceren.
Wat gebeurt er met null-waarden bij het omzetten van JSON naar TOML?
TOML heeft geen null-type, dus null kan niet worden weergegeven. Deze tool verwerkt dit veilig en transparant op twee manieren. Wanneer een null als objectwaarde verschijnt, laat TOML die sleutel simpelweg weg — en de tool toont een waarschuwing met precies welke sleutels zijn verwijderd, zodat je nooit wordt verrast door stil gegevensverlies. Wanneer een null binnen een array verschijnt, is er helemaal geen geldige TOML-uitvoer (een array kan geen gat bevatten), dus de tool meldt een fout die wijst naar het exacte pad van de betreffende null. In beide gevallen weet je precies wat er is gebeurd en waar.
Hoe worden geneste objecten en arrays omgezet naar TOML?
Een genest JSON-object wordt een TOML-tabel: { "owner": { "name": "Tom" } } wordt [owner] met name = "Tom". Diep geneste objecten worden tabellen met puntnotatie zoals [tool.ruff]. Een array van objecten wordt een array van tabellen geschreven met dubbele haken ([[servers]]), wat de idiomatische TOML-manier is om herhaalde secties uit te drukken. Arrays van scalars blijven inline als arrays (ports = [8001, 8002]). De uitvoer volgt de TOML 1.0.0-specificatie.
Wat gebeurt er met drijvendekommagetallen zoals 1.0?
TOML onderscheidt gehele getallen van floats, en een float waarvan het fractionele deel nul is (zoals 1.0) wordt geschreven als het gehele getal 1. Dus { "version": 1.0 } wordt version = 1. De tool toont een kleine waarschuwing wanneer deze coercie plaatsvindt, omdat het het type van de waarde bij een rondrit verandert. Als je wilt dat de waarde een float blijft, kan dat onderscheid voor hele getallen niet via TOML worden behouden — overweeg of een geheel getal is wat je eigenlijk wilt.
Worden mijn JSON-gegevens naar een server gestuurd?
Nee. Al het parseren en converteren gebeurt volledig in je browser met JavaScript. Je JSON wordt nooit geüpload, nooit opgeslagen en nooit gelogd. Dit maakt de tool veilig voor configuratie die API-sleutels, databasegegevens of interne servicedetails bevat. Je kunt dit verifiëren door het tabblad Netwerk van je browser te openen — het plakken van JSON activeert nul netwerkverzoeken.
Kan ik TOML terug omzetten naar JSON?
Ja. Gebruik de bijbehorende TOML naar JSON Converter voor de omgekeerde richting, of klik op de knop Richting omwisselen bovenaan deze tool om de invoer en uitvoer ter plekke om te draaien. TOML naar JSON heeft minder beperkingen — het accepteert elke geldige TOML — dus het rondrijden van JSON → TOML → JSON is betrouwbaar zolang je JSON om te beginnen geen nulls of array op het hoogste niveau had.
Hoe zet ik JSON naar TOML om op de opdrachtregel?
Een populaire optie is de Go-tool 'yj' (yj -jt leest JSON en schrijft TOML). In Python kun je het externe pakket 'tomli-w' gebruiken: import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). In Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — dezelfde bibliotheek die deze tool gebruikt. Voor een snelle eenmalige actie zonder iets te installeren is deze browsertool het snelste pad.
Hoe zet ik JSON naar TOML om in Python, Rust of Node.js?
In Python: import json, tomli_w; tomli_w.dump(json.load(open('config.json')), open('config.toml','wb')). In Rust: gebruik serde_json en toml — let value: serde_json::Value = serde_json::from_str(&text)?; let toml = toml::to_string_pretty(&value)?. In Node.js: import { stringify } from 'smol-toml'; const toml = stringify(JSON.parse(text)) — dit is precies de aanpak die deze tool gebruikt. Onthoud dat de waarde op het hoogste niveau in al deze gevallen een object moet zijn.
Behoudt de converter de sleutelvolgorde?
Sleutels binnen een tabel behouden hun oorspronkelijke volgorde, maar de TOML-structuur vereist dat alle gewone sleutel-waardeparen van een tabel vóór eventuele onderliggende tabelkoppen komen. Dus scalars op het hoogste niveau worden eerst uitgevoerd, daarna tabellen en arrays van tabellen — de converter herordent alleen waar de TOML-grammatica dat eist. De gegevens zijn identiek; alleen de tekstuele volgorde van de tabelsecties verschuift om geldige TOML te produceren.
Is er een limiet op de bestandsgrootte voor JSON-invoer?
Er is geen harde limiet, maar invoer boven de 200 KB schakelt over van live-conversie naar handmatige modus: er verschijnt een knop Converteren en de conversie draait pas wanneer je erop klikt, zodat de browser responsief blijft. Typische configuratie-payloads converteren in ruim onder de 50 milliseconden.

Gerelateerde tools

Alle tools bekijken →