Zo gebruik je deze tool
- Plak YAML in het invoerveld, of probeer het voorbeeld.
- Kies 2 of 4 spaties als inspringing.
- Kopieer de JSON of download deze als een .json-bestand.
Hoe het werkt
De YAML wordt geparseerd met de open-source yaml-bibliotheek volgens het YAML 1.2 core-schema, wat moderne tools verwachten: yes, no, on en off blijven strings, en alleen true en false zijn booleans. Ankers (&name) en aliassen (*name) worden uitgewerkt en <<-mergekeys worden toegepast; het aantal alias-expansies is beperkt, zodat opzettelijk exploderende documenten worden geweigerd in plaats van de pagina te laten vastlopen.
Een bestand met meerdere documenten gescheiden door --- wordt een JSON-array met één element per document. Commentaar, ankers en tags hebben geen JSON-equivalent en worden verwijderd; sleutels behouden hun volgorde. Tijdstempels blijven strings. Gehele getallen met meer dan ongeveer 15 cijfers verliezen precisie, zoals bij alle JSON die in JavaScript wordt verwerkt.
Als de YAML ongeldig is, wordt de eerste fout getoond met regel en kolom, bijvoorbeeld een tab die voor inspringing wordt gebruikt of een ontbrekend sluithaakje. Voor de andere richting gebruik JSON naar YAML, of de tweeweg JSON ⇄ YAML-converter.
Voorbeelden
CI-bestand met ankers
Een joblijst die een defaults-blok hergebruikt met <<: *defaults wordt JSON met de defaults gekopieerd naar elke job, zodat je precies ziet wat elke job meekrijgt.
Kubernetes-bestand met meerdere documenten
Een bestand met een Deployment en een Service gescheiden door --- wordt een JSON-array van twee objecten, klaar voor kubectl of jq.
Veelgestelde vragen
Waarom blijft yes een string?
YAML 1.2, dat hier en door de meeste huidige tools wordt gebruikt, behandelt alleen true en false als booleans. Oudere YAML 1.1-parsers maakten van yes, no, on en off booleans, wat veel bugs veroorzaakte.
Wat gebeurt er met commentaar?
JSON heeft geen commentaar, dus dit wordt verwijderd. De gegevens zelf blijven ongewijzigd.
Is er een limiet voor de bestandsgrootte?
Alleen het geheugen van je browser. Grote bestanden worden na een korte pauze tijdens het typen geconverteerd, zodat de pagina responsief blijft.
Privacy
De conversie vindt volledig in je browser plaats. Je YAML en JSON worden niet geüpload of opgeslagen.