Ga naar inhoud

JSON ↔ YAML-converter

JSON ↔ YAML-converter

Bewerk JSON en YAML naast elkaar met directe bidirectionele synchronisatie. Ondersteunt inspringanpassing, sleutelsortering en multi-document YAML-splitsing. Handig voor Kubernetes/Helm/CI-configuraties en API-debugging.

JSON ↔ YAML-converter

🚀 Snelstart

  • Plak of typ JSON in de linkereditor en YAML aan de rechterkant wordt automatisch bijgewerkt.
  • Je kunt ook YAML aan de rechterkant typen, en JSON aan de linkerkant wordt automatisch bijgewerkt.
  • Synchronisatie werkt twee kanten op. Je hoeft geen richting te kiezen: bewerk links of rechts en de andere kant wordt direct bijgewerkt.
  • Gebruik de bovenste werkbalk om de JSON/YAML-inspringing in te stellen, sleutelsortering in te schakelen en YAML-uitvoer voor meerdere documenten in of uit te schakelen.
  • Druk op Tab in de editor om een inspringing in te voegen in plaats van de focus te verplaatsen.
  • Elke editor heeft in de rechterbovenhoek de knoppen Kopiëren en Wissen. Door een van beide kanten vrij te maken, worden beide kanten vrijgemaakt.

📌 Veelvoorkomende scenario's

  • Kubernetes-ontwerp: converteer K8s-bronmanifesten tussen YAML en JSON om de structuur vanuit beide weergaven te inspecteren.
  • Foutopsporing in helmwaarden: converteer waarden.yaml naar JSON om typen en nesten in uw IDE te inspecteren.
  • CI/CD-pijplijnen: converteer snel fragmenten tussen GitHub Actions (YAML) en CI-systemen die JSON gebruiken.
  • API-foutopsporing: converteer JSON-payloads naar YAML voor een duidelijker hiërarchisch overzicht.
  • Configuratiemigratie: configuratiebestanden batchgewijs converteren tussen YAML en JSON.
  • Opmaak en validatie: verifieer de JSON/YAML-syntaxis via tweerichtingssynchronisatie, met locatie van regel-/kolomfouten.

🧭 Gebruiksadvies

  • Een JSON-inspringing met twee spaties werkt in de meeste gevallen; gebruik 4 spaties voor diepe nesting of Helm-waardenbestanden.
  • Schakel sleutel-sortering in om objectsleutels in alfabetische volgorde weer te geven. Zo kun je configuratieverschillen makkelijker vergelijken.
  • Wanneer de JSON-root een array is, schakelt u Multi-document YAML in om elk element in een afzonderlijk document te splitsen (---), handig voor K8s-bestanden met meerdere bronnen.
  • Als de invoer ongeldig is, geeft de editor een fout weer met regel-/kolomdetails; de andere kant behoudt zijn laatste geldige inhoud.
  • Voor grote inhoud plakt u eerst en wacht u op synchronisatie. Ga vervolgens door met bewerken om overmatige herconversie te voorkomen.

⚠️ Beperkingen & compatibiliteit

  • YAML-parsering volgt de YAML 1.2-specificatie. Bepaalde YAML 1.1-specifieke gedragingen (bijvoorbeeld ja/nee automatische Booleaanse conversie) kunnen verschillen.
  • JSON-nummers volgen JavaScript IEEE 754-limieten. Gehele getallen boven de veilige nauwkeurigheid van 53 bits kunnen hun nauwkeurigheid verliezen.
  • YAML-ankers en aliassen (&, *, <<) worden uitgebreid naar concrete waarden wanneer ze worden geconverteerd naar JSON; verwijzingen kunnen niet worden bewaard.
  • YAML-opmerkingen worden verwijderd tijdens de conversie omdat JSON geen opmerkingen ondersteunt.

🔒 Privacy & veiligheid

  • Alle verwerking gebeurt lokaal in uw browser. Uw gegevens verlaten nooit uw apparaat.

❓ Veelgestelde vragen

Wat is het verschil tussen JSON en YAML, en wanneer moet ik ze gebruiken?

JSON en YAML kunnen dezelfde gegevenstypen vertegenwoordigen (objecten, arrays, strings, getallen), maar hun syntaxis verschilt: • JSON gebruikt accolades/haakjes en dubbele aanhalingstekens, heeft een striktere syntaxis en ondersteunt geen commentaar. • YAML gebruikt inspringing voor hiërarchie, is beter leesbaar voor mensen en ondersteunt commentaar, maar is gevoelig voor witruimte. Vuistregel: • Voor API's en machine-to-machine gegevensuitwisseling geeft u de voorkeur aan JSON. • Voor Kubernetes/Helm/CI-configuraties die vaak door mensen worden bewerkt, geeft u de voorkeur aan YAML. • U kunt ertussen converteren zonder het gegevensmodel te wijzigen.

Waarom worden ja/nee/aan/uit in YAML waar/onwaar na conversie?

Dit komt voort uit het verouderde YAML 1.1-gedrag, waarbij ja/nee/aan/uit/y/n kan worden geparseerd als booleans. Deze tool volgt YAML 1.2, waarbij alleen waar/onwaar booleaanse waarden zijn. Als u tekenreekswaarden nodig heeft, citeert u deze (bijvoorbeeld 'ja').

Waarom verdwijnen YAML-opmerkingen na conversie naar JSON?

JSON (RFC 8259) staat geen opmerkingen toe. YAML-opmerkingen kunnen dus niet worden bewaard in YAML → JSON-conversie, en ze kunnen niet worden gereconstrueerd wanneer ze terug worden geconverteerd. Bewaar het originele YAML-bestand als opmerkingen ertoe doen.

Wat betekent --- in YAML?

--- is het documentscheidingsteken van YAML, dat wordt gebruikt om meerdere onafhankelijke documenten in één bestand op te slaan. Dit is gebruikelijk in Kubernetes, waar één bestand definities van Deployment, Service en ConfigMap kan bevatten. Deze tool leest YAML met meerdere documenten als een JSON-array, en kan een JSON-array ook weer splitsen in --- gescheiden YAML-documenten.

Wat moet ik doen als de numerieke precisie verloren gaat na de conversie?

JavaScript maakt gebruik van IEEE 754-getallen met dubbele precisie. Veilige gehele getallen variëren van -(2^53-1) tot 2^53-1 (±9007199254740991). Grotere gehele getallen (bijvoorbeeld Snowflake-ID's of 64-bits tijdstempels) kunnen hun nauwkeurigheid verliezen. Om exacte waarden te behouden, slaat u ze op als tekenreeksen, zoals '9007199254740992'.

Wat gebeurt er met YAML-ankers (& en *) tijdens de conversie?

Ankers (&name) en aliassen (*name) zijn YAML-specifieke hergebruikfuncties. JSON heeft geen gelijkwaardig referentiemechanisme, dus aliassen worden tijdens de conversie uitgebreid tot volledige kopieën. Dit is een transformatie met verlies en de oorspronkelijke ankerstructuur kan niet automatisch worden hersteld.