Een Kubernetes-manifest links, een JSON-schemavalidator die alleen JSON accepteert rechts. Een YAML-naar-JSON-converter dicht die kloof. Plak de YAML, lees de JSON, kopieer. Dezelfde pagina zet JSON om naar YAML als je een leesbaar configuratiebestand uit een API-antwoord nodig hebt.
Wat de omzetting van YAML naar JSON met je bestand doet
De tool leest YAML 1.2. In die versie zijn yes, no, on en off gewone strings, geen booleans. Een datum als 2001-12-14 blijft een string. Een octaal getal heeft het voorvoegsel 0o nodig, dus 0o17 is 15 en 017 is 17.
Ankers (&name), aliassen (*name) en samenvoegsleutels (<<: *name) worden opgelost, dus de JSON bevat de gekopieerde waarden. Opmerkingen bestaan niet in JSON en worden weggelaten.
Een bestand met meerdere documenten gescheiden door --- wordt een JSON-array met één item per document. De statistiekenregel zegt hoeveel er zijn gevonden, bijvoorbeeld "3 documenten". Een bestand met één document blijft een gewoon object of een gewone lijst. Lege documenten aan het eind worden genegeerd.
Een configuratie omzetten in vier stappen
- Kies de richting met de knoppen "YAML → JSON" of "JSON → YAML". Het vak toont voor elke richting een voorbeeld tot je je eigen tekst typt.
- Plak je tekst. De omzetting begint 300 milliseconden na je laatste toetsaanslag. De eerste keer wordt de YAML-bibliotheek geladen, dus dat kan even duren.
- Stel de opties in: JSON-inspringing van 2 spaties, 4 spaties of geminimaliseerd, en "Sleutels alfabetisch sorteren". Voor YAML-uitvoer kun je ook de inspringing kiezen en lange regels bij 80 tekens afbreken of helemaal niet.
- Druk op "Kopiëren" of "Downloaden". De download heet
converted.jsonofconverted.yaml.
Strings die op getallen, booleans of null lijken
JSON naar YAML heeft één valkuil: de string "123" mag niet het getal 123 worden. De tool schrijft haar met aanhalingstekens. Hetzelfde geldt voor "null", "true", "~" en een lege string. Hij zet ook "yes", "no", "on", "off" en alles wat als een datum begint tussen aanhalingstekens, omdat YAML 1.1-parsers ze als booleans of tijdstempels lezen. Strings met regeleinden worden blokscalars met |.
Fouten, waarschuwingen en waarden die JSON niet kan bevatten
Een kapot YAML-bestand stopt met de melding van de bibliotheek en de regel en kolom, bijvoorbeeld een tab als inspringing. Twee gelijke sleutels in één map zijn een fout, geen stille overschrijving. Een alias zonder anker erboven is ook een fout. Een onbekende tag als !custom is slechts een opmerking en de waarde blijft als tekst behouden.
YAML staat .nan, .inf en -.inf toe. JSON niet. De tool schrijft er null voor en meldt hoeveel hij heeft vervangen. Gehele getallen boven 2^53 (ongeveer 9 biljard) worden afgerond op het dichtstbijzijnde getal dat JavaScript kan opslaan, met een opmerking. Dezelfde afronding gebeurt als je JSON met zulke getallen plakt. Als een JSON-tekst een sleutel herhaalt, wint de laatste waarde.
Invoer boven 2.000.000 tekens wordt met een melding geweigerd.
Wat je machine verlaat
Er wordt niets geüpload. De YAML-bibliotheek is een script van deze site dat je browser één keer laadt, de eerste keer dat je omzet. Daarna draaien parsen en schrijven in je browsertabblad. "Kopiëren" gebruikt het klembord, "Downloaden" slaat een bestand op vanuit de browser. Je kunt het netwerkpaneel in de gaten houden terwijl je omzet: er is geen verzoek met je tekst.