Ontwikkelaarstools
JSON ↔ YAML-converter
Converteer JSON naar YAML of YAML naar JSON lokaal, met geneste lijsten, tekenreeksen en exacte getallen.
Je resultaten
JSON en YAML converteren met de bedoelde gegevenstypen
Converteer JSON-compatibele gegevens tussen strikte JSON en YAML 1.2-core-syntaxis. De converter behoudt JSON-getaltokens, inclusief grote gehele getallen, in plaats van ze eerst via JavaScript-getallen af te ronden. Hij converteert gegevenswaarden, niet de opmaak van het brondocument of het configuratieschema van een toepassing. YAML-commentaar, ankers en presentatiekeuzes blijven niet behouden bij conversie naar JSON.
Stap voor stap
- Plak tekst of open een lokaal UTF-8-bestand met JSON, YAML, YML of TXT. Kies expliciet JSON → YAML of YAML → JSON; een bestand openen detecteert de richting niet.
- Kies twee of vier spaties en sorteer eventueel objectsleutels. Verwerk de invoer en los syntaxisfouten of niet-ondersteunde functies op. Sorteren is recursief en gebruikt hoofdlettergevoelige lexicografische volgorde; de volgorde van arrays blijft ongewijzigd.
- Controleer tekenreeksen, booleans, null-waarden en getallen en kopieer, print of download vervolgens converted.yaml of converted.json. Verwerk opnieuw na het wijzigen van invoer of opties, omdat de oude uitvoer wordt gewist. Valideer het geconverteerde bestand met de toepassing die het gaat gebruiken.
Instellingen en beperkingen
- Typen en documentregels
- Gebruik één YAML 1.2-document met unieke tekenreekssleutels en JSON-compatibele waarden. Zet numeriek ogende identificatiecodes zoals "00123" tussen aanhalingstekens; ongequote YAML 00123 wordt het getal 123. Gewone yes, on en ISO-datumtekst blijven volgens de core-regels tekenreeksen.
- Aliassen en niet-ondersteunde functies
- Aliassen zonder cycli worden uitgebreid tot herhaalde waarden. Cycli, dubbele sleutels, niet-tekstuele sleutels, niet-ondersteunde tags en niet-eindige getallen worden geweigerd. YAML-samenvoegsleutels worden niet toegepast: <<: *base wordt een gewone "<<"-eigenschap, dus werk bedoelde geërfde velden eerst expliciet uit.
- Grootte en complexiteit
- De invoer is beperkt tot 2 MiB UTF-8-tekst: 2,097,152 bytes. De uitvoer is beperkt tot 8 MiB. Verwerking stopt ook bij meer dan 128 nestingsniveaus, 200,000 waardeknooppunten of 100 aliasbezoeken; een klein bestand kan die limieten toch overschrijden.
Uitgewerkt voorbeeld
Download types-example.json en kies JSON → YAML met inspringing van twee spaties en sorteren uit. Converteer het en vergelijk types-example.yaml. De aangehaalde id en word blijven tekenreeksen, enabled blijft false en retries en large blijven getallen.
Voorbeeldbestanden downloaden
Voorbeeldinvoer
{"id":"00123","word":"yes","enabled":false,"retries":3,"large":9007199254740993}Verwacht resultaat
"id": "00123"
"word": "yes"
"enabled": false
"retries": 3
"large": 9007199254740993Open nu types-example.yaml, schakel expliciet over naar YAML → JSON en verwerk opnieuw. De id moet nog steeds "00123" zijn en het grote gehele getal moet 9007199254740993 blijven. Verwijder de aanhalingstekens rond 00123 in de YAML en herhaal: de waarde wordt het getal 123. Dat verschil is belangrijk voor identificatiecodes, ook als beide bestanden geldig zijn.
Vragen en probleemoplossing
Waarom mislukt JSON met dubbele sleutels hier, terwijl het elders kan worden opgemaakt?
JSON-opmaker kan waarschuwen voor dubbele sleutels en ze behouden. Deze converter weigert ze omdat conversie naar een sleutel-waarde-structuur hun betekenis kan veranderen. Bepaal welke waarde in de bron thuishoort en verwijder het duplicaat vóór het converteren.
Blijven commentaar en YAML-overerving behouden?
JSON kent geen commentaar of ankers. Aliassen worden uitgebreid en samenvoegsleutels worden letterlijk geëxporteerd in plaats van als overerving toegepast. Werk de bedoelde gegevens uit en bekijk het resultaat; conversie is geen getrouwe herschrijving van elke YAML-functie.
Zijn grote getallen veilig in de doeltoepassing?
De converter behoudt ondersteunde getalnotaties en grote gehele getallen, maar een later programma kan ze met minder precisie parsen. Gebruik een aangehaalde tekenreeks als een numeriek ogende waarde een identificatiecode is, en test de parser van de doeltoepassing.