UltKit

JSON naar YAML converteren

Zet JSON om naar YAML die mensen kunnen lezen, beoordelen en van commentaar voorzien. Upload .json-bestanden en ontvang ingesprongen .yaml met dezelfde sleutels, waarden en volgorde, klaar om in een repository te zetten.

Dataconverter

of sleep CSV, TSV, TXT …-bestanden hierheen ·

Max. 95 MB per bestand· Tot 20 bestanden· Verwijderd na 30 minuten

Uitvoer

Bestanden worden op onze servers verwerkt en na 30 minuten verwijderd.

Zo gebruikt u deze tool

  1. 1

    Voeg de JSON-bestanden toe

    Upload API-responses, geëxporteerde instellingen of gegenereerde manifesten als .json, maximaal 20 bestanden van elk maximaal 95 MB. Elk bestand moet één geldige JSON-waarde bevatten.

  2. 2

    Laat de standaardinstellingen staan

    YAML staat al geselecteerd onder Converteren naar. Voor een configuratiebestand hoeft u verder niets te wijzigen; de uitvoer gebruikt inspringing met twee spaties.

  3. 3

    Converteren en committen

    Klik op Converteren naar YAML, download de .yaml-bestanden, voeg opmerkingen toe waar de volgende lezer ze nodig heeft en commit.

Antwoord

Hoe zet ik JSON om naar YAML?

Upload het .json-bestand en klik op Converteren naar YAML. Objecten worden ingesprongen key: value-blokken, arrays worden lijsten met streepjes, en tekenreeksen die YAML verkeerd zou kunnen lezen behouden hun aanhalingstekens.

Waarom JSON naar YAML omzetten voor configuratiebestanden

De meeste JSON wordt door software gemaakt: een API-response, een export van instellingen, de uitvoer van een generator. De meeste YAML wordt door mensen onderhouden. De conversie markeert meestal het moment waarop gegevens geen machine-uitvoer meer zijn maar iets worden dat een team beheert, zoals een deployment-manifest in Git, een CI-pipeline of een set Ansible-variabelen.

Een typisch geval: u roept een cloud-API aan, krijgt een JSON-beschrijving van 200 regels van een resource terug en wilt die bewaren als infrastructuurcode. Na conversie heeft u een bestand zonder accolades en komma's, waarin een wijziging van één regel een diff van één regel oplevert en u vreemde waarden in opmerkingen kunt toelichten. Hetzelfde geldt voor testdata en vertaalbestanden die niet-ontwikkelaars bewerken. Heeft u juist een platte tabel nodig, voor een spreadsheet of rapport, dan past JSON naar CSV beter.

Tools met configuratiebestanden in YAML

Waar geconverteerde YAML meestal terechtkomt
OrganisatieVereisteBron
GitHub ActionsWorkflows staan in .github/workflows als .yml- of .yaml-bestandenGitHub Docs
GitLab CI/CDDe pipeline wordt gedefinieerd in .gitlab-ci.yml in de root van de repositoryGitLab Docs
Docker ComposeServices worden beschreven in compose.yaml (voorheen docker-compose.yml)Docker Docs
AnsiblePlaybooks en variabelenbestanden zijn geschreven in YAMLAnsible Docs
KubernetesManifesten accepteren JSON of YAML; documentatie en Helm-charts gebruiken YAMLKubernetes

Voorbeeld van JSON naar YAML met lastige waarden

YAML-uitvoer voor {"name":"api","version":"1.10","debug":false,"tags":["web","nl"],"country":"NO"}
name: api
version: "1.10"
debug: false
tags:
  - web
  - nl
country: "NO"

Wat YAML u biedt

  • Opmerkingen met #
  • Kortere diffs bij code-review
  • Op de meeste regels geen accolades, komma's of aanhalingstekens
  • Tekst over meerdere regels met | blokscalars

Waar u op moet letten

  • Inspringing bepaalt de betekenis, dus een verdwaalde spatie wijzigt de structuur
  • Tabs zijn niet toegestaan voor inspringing
  • Tekenreeksen zonder aanhalingstekens kunnen als getal of boolean worden gelezen
  • Tragere en minder uniforme parsers dan bij JSON

Het voorbeeld laat zien waarom simpel zoeken en vervangen van accolades niet volstaat. Versie 1.10 is in de JSON een tekenreeks; zonder aanhalingstekens in YAML zou die als het getal 1.1 worden gelezen. NO, de ISO-code voor Noorwegen, zou door YAML 1.1-parsers zoals PyYAML als false worden gelezen. Beide behouden hun aanhalingstekens, terwijl echte getallen en booleans zonder aanhalingstekens blijven staan.

JSON en YAML vergeleken

JSON

JavaScript Object Notation

JSON is een lichtgewicht tekstformaat voor gestructureerde gegevens, begin jaren 2000 gepopulariseerd door Douglas Crockford en gestandaardiseerd als RFC 8259 en ECMA-404. Het weergeeft objecten, arrays, tekenreeksen, getallen, booleans en null met eenvoudige, leesbare syntaxis. Het is het standaardformaat voor web-API's, configuratiebestanden en gegevensuitwisseling tussen apps in vrijwel elke programmeertaal. Het heeft geen ingebouwde opmerkingen, datums of schema's, en grote geneste bestanden zijn zonder viewer moeilijk te lezen.

Compressie
–
Transparantie
–
Animatie
–
Geïntroduceerd
2001 · Douglas Crockford
JSON-converter

YAML

YAML

YAML ("YAML Ain't Markup Language") is een voor mensen prettig gegevensformaat dat voor het eerst in 2001 verscheen. Het gebruikt inspringing in plaats van haakjes, ondersteunt opmerkingen en is een superset van JSON. Het wordt veel gebruikt voor configuratie in Docker Compose, Kubernetes, GitHub Actions en veel toepassingen. Door de afhankelijkheid van witruimte is het met één verkeerde spatie stuk te maken, en sommige waarden, zoals "no" of datums, kunnen onverwacht worden geïnterpreteerd.

Compressie
–
Transparantie
–
Animatie
–
Geïntroduceerd
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML-converter

Mensen zetten JSON om naar YAML wanneer gegenereerde of API-gegevens een configuratiebestand moeten worden dat mensen beheren, beoordelen in pull requests en van opmerkingen voorzien.

Vragen over JSON naar YAML converteren

Is JSON al geldige YAML?

Onder YAML 1.2 wel: de herziening uit 2009 is zo opgesteld dat elk JSON-document ook een YAML-document is. U kunt JSON in een .yaml-bestand plakken en de meeste tools accepteren dat. Converteren draait om leesbaarheid: blokstijl zonder accolades, aanhalingstekens en komma's is wat reviewers en de volgende beheerder verwachten.

Waarom staan sommige waarden tussen aanhalingstekens in de YAML?

Omdat YAML ze zonder aanhalingstekens als een ander type zou lezen. Een versienummer als 1.10 wordt het getal 1.1, en yes of off kunnen in oudere parsers booleans worden. Tekenreeksen die op getallen, datums of booleans lijken hebben aanhalingstekens nodig om tekst te blijven, dus een zorgvuldige conversie behoudt ze.

Kan ik na het converteren commentaar toevoegen?

Ja, en dat is een veelvoorkomende reden om te converteren. Schrijf # gevolgd door uw opmerking aan het eind van een regel of op een eigen regel. In JSON kon u niet uitleggen waarom een waarde zo is ingesteld; in YAML wel, wat reviews en overdrachten makkelijker maakt.

Waarom geeft mijn YAML een foutmelding over een tabteken?

De YAML-specificatie verbiedt tabs voor inspringing; alleen spaties tellen. De converter schrijft spaties, maar een editor die tabs invoegt kan het bestand bij de volgende bewerking breken. Stel uw editor in om spaties te gebruiken voor .yaml-bestanden.

Accepteert Kubernetes het geconverteerde manifest?

kubectl leest zowel JSON als YAML, dus de gegevens zijn in beide gevallen hetzelfde; de YAML-versie is gewoon wat de meeste documentatie, Helm-charts en code-reviews gebruiken. Heeft u later weer JSON nodig voor jq of een API-aanroep, dan draait YAML naar JSON het om.