Formatteer, valideer YAML en converteer tussen YAML en JSON.
Invoer
Uitvoer
Advertentie
Over deze tool
YAML (YAML Ain't Markup Language) werd oorspronkelijk gecreëerd door Clark Evans in 2001, met bijdragen van Ingy döt Net en Oren Ben-Kiki. De naam was aanvankelijk een speels acroniem voor "Yet Another Markup Language", maar werd later hernoemd tot een recursief acroniem om te benadrukken dat YAML fundamenteel een dataserialisatieformaat is, geen documentopmaaktaal.
De eerste officiële specificatie, [YAML 1.0](https://yaml.org/spec/1.0/), werd gepubliceerd in januari 2004, met de huidige [YAML 1.2-specificatie](https://yaml.org/spec/1.2.2/) uitgebracht in 2009.
YAML werd ontworpen met menselijke leesbaarheid als primair doel. Het gebruikt inspringingsgebaseerde structuur (alleen spaties, nooit tabs) en minimale interpunctie, waardoor het visueel schoner is dan JSON of XML voor configuratiebestanden. YAML ondersteunt rijke datatypen waaronder scalars, sequences, mappings, meerregelige strings (literal block met | en folded block met >), ankers en aliassen voor gegevenshergebruik, en zelfs complexe sleutels.
Het is een strikte superset van JSON, wat betekent dat elk geldig JSON-document ook geldig YAML is. YAML's ontwerpfilosofie is geïnspireerd door talen als Python en door e-mailopmaakconventies (RFC 2822).
YAML is de de facto standaard geworden voor configuratie in moderne DevOps- en cloud-native tooling. [Kubernetes](https://kubernetes.io/docs/concepts/overview/working-with-objects/)-manifesten, Docker Compose-bestanden, Ansible-playbooks, GitHub Actions-workflows, GitLab CI-definities en Helm-charttemplates gebruiken allemaal YAML uitgebreid.
Infrastructure-as-Code-platforms zoals Terraform en CloudFormation vertrouwen ook op YAML. Deze formatter gebruikt de [js-yaml](https://github.com/nodeca/js-yaml)-bibliotheek, de meest gebruikte JavaScript-implementatie van de YAML 1.2-parser. Het ondersteunt formattering met aanpasbare inspringing, syntaxisvalidatie met gedetailleerde foutrapporten en naadloze bidirectionele conversie tussen YAML en JSON. Alle verwerking gebeurt volledig in uw browser — uw gegevens verlaten nooit uw apparaat.
Klik op Formatteren om te verfraaien, Valideren om de syntaxis te controleren, of gebruik de conversieknoppen.
Kopieer de geformatteerde uitvoer of gebruik de YAML↔JSON-conversie naar behoefte.
De Evolutie van YAML
YAML begon in 2001 als een initiatief geleid door Clark Evans, samen met Ingy döt Net en Oren Ben-Kiki, om een mensvriendelijk alternatief voor XML te creëren voor dataserialisatie en configuratie. In die tijd was XML het dominante formaat voor gestructureerde gegevens, maar de omslachtige syntaxis met sluitingstags, attribuutaanhalingstekens en namespacedeclaraties maakte het onpraktisch voor configuratiebestanden die ontwikkelaars dagelijks handmatig bewerkten. YAML's inspringingsgebaseerde structuur, geïnspireerd door Python en e-mailopmaakconventies, bood een radicaal schonere aanpak.
Het formaat kreeg zijn eerste grote adoptiestroom via het Ruby on Rails-framework in 2004-2005, dat database.yml voor databaseconfiguratie en fixtures.yml voor testgegevens gebruikte. Dit introduceerde een hele generatie webontwikkelaars bij YAML als hun standaard configuratieformaat. De YAML-specificatie zelf evolueerde door verschillende versies: YAML 1.0 in 2004 formaliseerde de taal, YAML 1.1 in 2005 voegde functies toe zoals merge-keys en verbeterde typresolutie, en YAML 1.2 in 2009 bracht de specificatie dichter bij JSON, waardoor elk geldig JSON-document ook geldig YAML werd.
De opkomst van DevOps en cloud-native infrastructuur vanaf 2013 transformeerde YAML van een populair gemak in een industriestandaard. Kubernetes adopteerde YAML voor alle resourcemanifesten, Docker Compose gebruikte het voor multi-containerdefinities, en CI/CD-platforms zoals GitHub Actions, GitLab CI en CircleCI kozen allemaal YAML voor pipelineconfiguratie. Ansible-playbooks, Helm-charts en CloudFormation-templates verstevigden de dominantie in infrastructure-as-code nog verder.
De geschiedenis van YAML is niet zonder controverse. Het beruchte "Noorwegenprobleem" — waarbij de landcode NO stilzwijgend wordt geparseerd als de boolean false in YAML 1.1 — benadrukte de gevaren van impliciete typeconversie. Evenzo hebben waarden zoals "on", "off", "yes" en versienummers zoals 1.0 die als booleans of floats worden geïnterpreteerd talloze subtiele bugs veroorzaakt. De YAML 1.2-specificatie heeft veel van deze problemen aangepakt door de typresolutieregels aan te scherpen, maar legacy-parsers die nog steeds 1.1-gedrag gebruiken blijven een bron van frustratie. Ondanks deze eigenaardigheden hebben de leesbaarheid en expressiviteit van YAML het tot de onbetwiste taal van modern configuratiebeheer gemaakt.
Je resultaten begrijpen
Na het formatteren wordt uw YAML weergegeven met consistente inspringing die de hiërarchische structuur van uw gegevens duidelijk laat zien. Geneste mappings en sequences worden elk één niveau dieper ingesprongen, waardoor ouder-kindrelaties visueel gemakkelijk te traceren zijn. De formatter standaardiseert de inspringing in het hele document, wat cruciaal is omdat YAML afhankelijk is van witruimte om structuur te definiëren.
Een groene badge "Geldige YAML" bevestigt dat uw document succesvol wordt geparseerd volgens YAML 1.2-regels. Als er fouten worden gedetecteerd, verschijnt een rode badge "Ongeldige YAML" met een gedetailleerd foutbericht inclusief regelnummer, kolompositie en een codefragment dat de exacte locatie van het probleem toont.
Veelvoorkomende fouten zijn inconsistente inspringing, gebruik van tabs in plaats van spaties, ontbrekende dubbele punten na mappingsleutels, onjuiste meerregelige stringindicatoren en dubbele sleutels binnen dezelfde mapping. Bij conversie naar JSON worden YAML-opmerkingen, ankers en aliassen verwijderd. De JSON-uitvoer gebruikt standaard pretty-printing met 2-spatie inspringing, waardoor het direct bruikbaar is in JavaScript-applicaties of API-payloads.
Hoe te gebruiken
Plak uw YAML- of JSON-code in het invoerveld.
Klik op Formatteren om te verfraaien, Valideren om de syntaxis te controleren, of gebruik de conversieknoppen.
Kopieer de geformatteerde uitvoer of gebruik de YAML↔JSON-conversie naar behoefte.
Methodologie
Deze tool gebruikt de js-yaml-bibliotheek, een volledige JavaScript-implementatie die voldoet aan de YAML 1.2-specificatie, voor alle parsing- en serialisatiebewerkingen. Wanneer u YAML invoert, parst de safeLoad-functie van js-yaml de tekst naar een native JavaScript-objectboom, waarbij ankers, aliassen en typeconversies worden opgelost. Het resulterende object wordt vervolgens opnieuw geserialiseerd naar YAML met safeDump met het geconfigureerde inspringsniveau.
Voor YAML-naar-JSON-conversie wordt het geparseerde JavaScript-object door JSON.stringify geleid met opmaakopties. Voor JSON-naar-YAML-conversie wordt de invoer eerst geparseerd met JSON.parse en vervolgens geserialiseerd via safeDump van js-yaml. Validatie werkt door te proberen de invoer te parseren en eventuele YAMLException-fouten op te vangen, die gedetailleerde regel-, kolom- en snippetinformatie bevatten.
Opmerkingen blijven behouden tijdens YAML-formattering maar gaan verloren bij JSON-conversie, aangezien JSON geen opmerkingen ondersteunt.
Praktische voorbeelden
Een DevOps-engineer werkt een Kubernetes-deploymentmanifest bij om een service van 3 naar 5 replica's te schalen. Na het handmatig bewerken van de YAML plakt hij het in deze formatter om te valideren dat de inspringing correct is en er geen syntaxisfouten zijn geïntroduceerd voordat de wijziging wordt toegepast met kubectl.
Een ontwikkelaar converteert een bestaand JSON-configuratiebestand naar YAML voor een nieuw Ansible-playbook. Hij plakt de JSON in het invoerveld, klikt op "JSON naar YAML" en ontvangt netjes geformatteerde YAML-uitvoer die klaar is om als playbookbestand te worden opgeslagen.
Een teamleider beoordeelt een Docker Compose-bestand van een junior developer. Hij formatteert de YAML om de inspringing te standaardiseren op 2 spaties, waardoor het bestand consistent wordt met de rest van de configuratiebestanden van het project.
Tips & Best Practices
Gebruik altijd spaties voor inspringing, nooit tabs. De meeste YAML-parsers weigeren tabs volledig, en het mengen van tabs en spaties veroorzaakt subtiele, moeilijk te debuggen fouten. Houd het op 2 spaties per niveau voor consistentie met communityconventies.
Zet strings die verkeerd geïnterpreteerd kunnen worden als andere typen tussen aanhalingstekens: waarden zoals "yes", "no", "true", "false", "null", "1.0" en "on" worden automatisch omgezet naar booleans of getallen in YAML. Omsluit ze met enkele of dubbele aanhalingstekens om ze als strings te behouden.
Gebruik ankers (&naam) en aliassen (*naam) om het dupliceren van grote configuratieblokken te voorkomen. Dit is vooral nuttig in CI/CD-pipelines waar meerdere jobs gemeenschappelijke instellingen delen. Valideer uw YAML altijd na het bewerken, want een enkele verkeerd geplaatste spatie kan de hele documentstructuur veranderen.
YAML gebruikt inspringing voor structuur en is beter leesbaar voor mensen, vaak gebruikt voor configuratiebestanden. JSON gebruikt accolades en haakjes, is compacter en wordt veel gebruikt voor gegevensuitwisseling en API's. Beide kunnen dezelfde datastructuren representeren — objecten, arrays, strings, getallen, booleans en null-waarden.
Welke YAML-functies worden ondersteund?
Deze tool ondersteunt standaard YAML 1.2-functies, waaronder: sleutel-waardeparen, geneste objecten, arrays (zowel block- als flow-stijl), meerregelige strings (letterlijk en gevouwen), opmerkingen, ankers en aliassen, en alle basisdatatypen (strings, getallen, booleans, null).
Waarom is inspringing belangrijk in YAML?
YAML gebruikt inspringing (spaties, geen tabs!) om structuur en hiërarchie te definiëren. In tegenstelling tot JSON, dat accolades gebruikt, is YAML volledig afhankelijk van consistente inspringing. Doorgaans worden 2 spaties per niveau gebruikt. Onjuiste inspringing veroorzaakt parseerfouten of onverwachte datastructuren.
Hoe gaat YAML om met meerregelige strings?
YAML biedt verschillende stijlen voor meerregelige strings. De literal block-stijl (|) behoudt regelafbrekingen precies zoals geschreven — elke nieuwe regel in de bron wordt een nieuwe regel in de geparseerde waarde. De folded block-stijl (>) voegt regels samen met spaties, waarbij enkele regelafbrekingen als spaties worden behandeld en dubbele als alinea-einden. Beide stijlen kunnen worden gewijzigd met chomping-indicatoren: strip (-) verwijdert afsluitende nieuwe regels, keep (+) behoudt ze en clip (standaard) houdt één afsluitende nieuwe regel. Bijvoorbeeld, 'description: |\n Regel een\n Regel twee' produceert een string met een daadwerkelijke nieuwe regel tussen de regels.
Waarom heeft YAML beveiligingsproblemen?
Het bekendste beveiligingsprobleem van YAML is onveilige deserialisatie. Sommige YAML-parsers (met name oudere versies van PyYAML en Ruby's YAML-bibliotheek) ondersteunen taalspecifieke tags die willekeurige objecten kunnen instantiëren tijdens het parsen, waardoor mogelijk externe code-uitvoering mogelijk wordt. Bijvoorbeeld, de !!python/object-tag in PyYAML kan willekeurige Python-code uitvoeren. Moderne best practices: gebruik altijd veilige laadfuncties (yaml.safe_load in Python, YAML.parse in JS), parse nooit onbetrouwbare YAML met volledige objectinstantiatie ingeschakeld en geef de voorkeur aan JSON voor gegevensuitwisseling met onbetrouwbare bronnen. De browsergebaseerde parser van deze tool voert geen willekeurige code uit.
Kan ik met deze tool converteren tussen YAML en JSON?
Deze tool richt zich op het formatteren en valideren van YAML, niet op het converteren tussen formaten. YAML is echter een superset van JSON — elk geldig JSON-document is ook geldig YAML. Dit betekent dat u JSON in de YAML-formatter kunt plakken en het correct wordt geparseerd. Voor dedicated JSON-naar-YAML en YAML-naar-JSON conversie met volledige controle over uitvoeropties biedt InnoviCat aparte convertertools. Het belangrijkste verschil tussen formaten voor conversie: YAML ondersteunt opmerkingen, ankers en meerregelige strings die geen JSON-equivalent hebben, dus YAML-naar-JSON-conversie kan deze functies verliezen.
Mijn Favorieten
Slepen om te herordenen
Nog geen favorieten
Tik op de ☆ bij een tool om deze als favoriet op te slaan.