YAML naar JSON omzetten en valideren

Zet YAML om naar JSON in je browser: niets wordt geüpload, er is geen limiet op de grootte en ongeldige YAML toont de regel en het teken van de fout, dus het werkt ook als validator.

Inspringen

Zo werkt het

  1. Plak je code

    Plak de code in het linkervak of open een bestand. Geen code bij de hand? Klik op Voorbeeld.

  2. Direct resultaat

    De uitkomst verschijnt terwijl je typt. Is er een fout, dan zie je op welke regel en welk teken.

  3. Kopieer of download

    Kopieer het resultaat met één klik of sla het op als bestand voor je editor of project.

Wat wordt omgezet?

  • Commentaar met # verdwijnt, omdat JSON geen commentaar kent.
  • Ankers en aliassen (&standaard en *standaard) worden volledig uitgeschreven.
  • Meerdere documenten, gescheiden door ---, worden samengevoegd tot één JSON-array.
  • true, false, null en getallen worden echte JSON-waarden; yes en no blijven tekst (zoals in YAML 1.2).

Configs bevatten vaak geheimen

Een docker-compose.yml, een Kubernetes-manifest of een CI-pijplijn kan wachtwoorden, tokens en interne hostnamen bevatten. Omdat deze omzetter in je browser draait, kun je echte bestanden valideren of omzetten zonder ze naar een server te sturen. Haal toch geheimen weg voordat je de uitvoer deelt.

Controleer een bestand voor je uitrolt

Plak je YAML om te zien of hij parset. Een omgezet resultaat dat anders is dan je verwachtte wijst op een probleem met inspringing: een sleutel die op de verkeerde plek terecht is gekomen wordt zichtbaar in de JSON-structuur, waar nesting met accolades expliciet is.

Veelgemaakte YAML-fouten

  • Tabs gebruiken om in te springen. YAML accepteert alleen spaties.
  • Ongelijke inspringing: alle sleutels op hetzelfde niveau moeten precies gelijk inspringen.
  • Een dubbele punt in een waarde zonder aanhalingstekens, zoals titel: Let op: nieuw. Zet de waarde tussen aanhalingstekens.

Het "Noorwegen-probleem" en andere verrassingen

YAML 1.1 leest yes, no, on en off als boolean, en NO (de landcode van Noorwegen) als onwaar. Deze omzetter volgt YAML 1.2, waar alleen true en false booleans zijn, maar andere tools lezen ze misschien nog op de oude manier. Zet waarden die verkeerd gelezen kunnen worden tussen aanhalingstekens. Getallen met een voorloopnul (0123), versies als 1.10 en tijdachtige waarden (12:30) zijn andere klassiekers, dus quote ze als je tekst wilt.

Meerdere documenten

Een bestand met meerdere documenten gescheiden door --- wordt een JSON-array, één item per document. Dat is de gebruikelijke vorm van een Kubernetes-manifest met meerdere resources.

Terug naar YAML? Gebruik JSON naar YAML. Om de JSON comfortabel te lezen zie je de JSON formatter.

Veelgestelde vragen

Welke YAML-versie volgt het?

YAML 1.2. Alleen true en false zijn booleans. Oudere tools die 1.1 volgen lezen ook yes, no, on en off als boolean.

Wat gebeurt er met mijn commentaar?

Dat verdwijnt, omdat JSON geen commentaar kent.

Waarom geeft mijn YAML een foutmelding?

Veelvoorkomende oorzaken zijn tabs voor inspringing, ongelijke inspringing, of een dubbele punt gevolgd door een spatie in een waarde zonder aanhalingstekens.

Wordt mijn YAML geüpload?

Nee. Hij wordt in je browser omgezet en nergens heen gestuurd.