Skip to content

YAML naar JSON omzetter

Plak YAML en krijg direct JSON. Live conversie in je browser. K8s-manifests, OpenAPI-specificaties en Helm values ondersteund. 100% privé, geen upload.

Geen tracking Draait in je browser Gratis
Opties · 2 spaties
Inspringing
0 tekens
JSON Uitvoer
0 regels
Gecontroleerd op YAML 1.2-specificatienaleving, uitbreiding van ankers/aliassen en correcte verwerking van meerdere documenten — Go Tools Engineering Team · May 4, 2026

Wat is JSON?

JSON (JavaScript Object Notation) is een lichtgewicht, op tekst gebaseerd datauitwisselingsformaat dat is gestandaardiseerd als RFC 8259 en ECMA-404. Het ondersteunt zes gegevenstypen — strings, getallen, booleans, null, arrays en objecten — met een strikte, minimale syntaxis die vrijwel elke programmeertaal, API en toolchain ingebouwd kan verwerken. Hoewel YAML het voorkeursformaat is voor door mensen geschreven configuratiebestanden (Kubernetes-manifests, GitHub Actions, Ansible-playbooks, Helm values), is JSON het universele door machines leesbare formaat voor API's, automatiseringsscripts en programmatische dataverwerking.

YAML omzetten naar JSON is daardoor een van de meest voorkomende taken in DevOps en backend-ontwikkeling — je hebt een YAML-configuratiebestand maar je hebt JSON nodig om het naar een REST API te sturen, met jq op te vragen of met JavaScript-tooling te verwerken.

Deze tool heeft vier belangrijke onderscheidende kenmerken ten opzichte van typische online omzetters:

**1. Verwerking van YAML met meerdere documenten.** YAML ondersteunt meerdere documenten in één stroom gescheiden door --- (het documentstart-scheidingsteken). Veel realistische YAML-bestanden — waaronder sommige Kubernetes-manifests en Ansible-playbooks — bevatten meerdere documenten. Deze tool gebruikt parseAllDocuments van de eemeli/yaml-bibliotheek met opties { version: '1.2', merge: true } en retourneert het eerste document als JSON, waarbij duidelijk wordt gecommuniceerd wat er is genomen. Als je alle documenten nodig hebt, splits dan op --- en zet elk afzonderlijk om.

**2. Uitbreiding van ankers en aliassen.** YAML-ankers (&name) en aliassen (*name) maken hergebruik van datablokken mogelijk — een krachtige YAML-functie zonder JSON-equivalent. Deze tool breidt alle ankers en aliassen volledig uit (inclusief samenvoegsleutels: <<: *anker) zodat de JSON-uitvoer volledige, op zichzelf staande data bevat zonder referenties. Dit is altijd de juiste transformatie omdat JSON geen referentiesyntaxis heeft. De uitbreiding wordt veilig afgehandeld door de eemeli/yaml-bibliotheek, die bescherming biedt tegen circulaire verwijzingen. Lees hoe dit vergelijkt met de omgekeerde richting op JSON naar YAML omzetter.

**3. Verlies van commentaar — educatieve transparantie.** YAML ondersteunt # commentaar, dat veelvuldig wordt gebruikt in Kubernetes-manifests, Helm values en Ansible-playbooks om bedoelingen te documenteren. JSON heeft geen commentaarsyntaxis, dus commentaar gaat permanent verloren tijdens conversie. Dit is geen fout — het is een fundamenteel formatverschil. Deze tool maakt dit expliciet zodat je weet wat te verwachten. Als je annotaties wilt bewaren, encodeer ze dan als JSON-velden (_comment-sleutels of een speciaal metadataobject) vóór het omzetten, of bewaar YAML als de gezaghebbende bron. Zie ons diepgaand artikel over YAML-JSON-verschillen voor meer informatie over formatafwegingen.

**4. 100% browsergebaseerde privacy.** Je YAML-data — die vaak Kubernetes-secrets, databasegegevens, Helm values met wachtwoorden en interne serviceconfiguraties bevat — verlaat je browser nooit. Er worden geen gegevens naar een server verzonden. Je kunt dit verifiëren in het tabblad Netwerk van je browser. Na het omzetten naar JSON kun je het resultaat valideren en opmaken met onze JSON-formatter voordat je het verder gebruikt.

YAML's rijkheid (commentaar, ankers, ondersteuning voor meerdere documenten, blokscalars) maakt het uitstekend voor door mensen gemaakte configuratiebestanden waarbij leesbaarheid en documentatie belangrijk zijn. JSON's striktheid en universaliteit maken het de betere keuze wanneer een machine de primaire verbruiker is. Deze omzetter verbindt de twee werelden: bewaar je configuratie in YAML voor menselijke onderhoudbaarheid, zet om naar JSON wanneer je machine-leesbare uitwisseling nodig hebt.

// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';

const yamlString = `apiVersion: apps/v1
kind: Deployment`;

// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });

// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);

console.log(json);
// {
//   "apiVersion": "apps/v1",
//   "kind": "Deployment"
// }

Kernfuncties

Live conversie

JSON-uitvoer wordt direct bijgewerkt terwijl je YAML typt of plakt — geen Omzetten-knop nodig. Grote invoer (>200 KB) schakelt automatisch over naar handmatige modus om de browser responsief te houden.

2 of 4 spaties inspringing

Schakel tussen 2 spaties en 4 spaties inspringing voor de JSON-uitvoer. 2 spaties is standaard voor de meeste tooling en API's; 4 spaties past bij sommige stijlgidsen en standaardinstellingen van editors.

Ondersteuning voor meerdere documenten

Verwerkt YAML-stromen met meerdere --- gescheiden documenten. Het eerste document wordt omgezet naar JSON en geretourneerd. Handig voor Kubernetes-bestanden met meerdere resources en Ansible-playbooks.

Uitbreiding van ankers en aliassen

Breidt YAML-ankers (&name) en aliassen (*name) volledig uit, inclusief samenvoegsleutels (<<: *anker). De JSON-uitvoer bevat volledige, dereferenced data zonder referenties — correct gedrag omdat JSON geen equivalent heeft.

100% browsergebaseerde privacy

Alle conversie draait lokaal in je browser via JavaScript. Je YAML-data — inclusief secrets, gegevens en productieconfiguraties — wordt nooit naar een server verzonden, nooit gelogd en nooit opgeslagen.

Werkt met K8s, Compose, Helm en OpenAPI

Geoptimaliseerd voor realistische DevOps-gebruiksscenario's: Kubernetes-manifests, Docker Compose-stacks, Helm chart values, GitHub Actions-workflows, OpenAPI-specificaties en Ansible-playbooks — met voorbeelden voor elk.

Voorbeelden

Kubernetes-manifest

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: production
  labels:
    app: my-app
    version: 1.0.0
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app:1.0.0
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: 64Mi
              cpu: 250m
            limits:
              memory: 128Mi
              cpu: 500m

Zet een Kubernetes Deployment-manifest van YAML om naar JSON — handig voor querying met jq, verzenden naar de Kubernetes-API of invoer in Terraform en CI/CD-pipelines

Docker Compose

version: '3.9'
services:
  web:
    image: nginx:1.25-alpine
    ports:
      - '80:80'
      - '443:443'
    environment:
      NGINX_HOST: example.com
      NGINX_PORT: '80'
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

Zet Docker Compose YAML om naar JSON voor programmatische bewerking, invoer in automatiseringsscripts of verwerking met JavaScript-tooling

GitHub Actions-workflow

name: CI
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: pnpm
      - name: Install dependencies
        run: pnpm install --frozen-lockfile
      - name: Run tests
        run: pnpm test

Lees een GitHub Actions-workflow YAML als JSON om specifieke velden op te vragen, de structuur te valideren of te integreren met API's die JSON accepteren

OpenAPI-specificatie

openapi: 3.0.3
info:
  title: User API
  version: 1.0.0
  description: Manage application users
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
  /users/{id}:
    get:
      summary: Get user
      operationId: getUser
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
          format: email

Zet een OpenAPI 3.0-specificatie van YAML om naar JSON voor gebruik met clientcodegeneratoren, API-testtools of programmatische schema-inspectie

Helm values.yaml

replicaCount: 3
image:
  repository: my-app
  tag: 1.0.0
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 80
ingress:
  enabled: true
  className: nginx
  hosts:
    - host: my-app.example.com
      paths:
        - path: /
          pathType: Prefix
resources:
  requests:
    memory: 64Mi
    cpu: 250m
  limits:
    memory: 128Mi
    cpu: 500m
autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 80

Zet Helm chart values.yaml om naar JSON voor analyse, het genereren van rapporten of invoer in tooling die JSON-configuratie verwacht

Ansible-playbook

- name: Configure web servers
  hosts: webservers
  become: true
  vars:
    http_port: 80
    max_clients: 200
  tasks:
    - name: Ensure nginx is installed
      ansible.builtin.package:
        name: nginx
        state: present
    - name: Start nginx service
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true
    - name: Copy nginx config
      ansible.builtin.template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
        owner: root
        group: root
        mode: '0644'
      notify:
        - Restart nginx
  handlers:
    - name: Restart nginx
      ansible.builtin.service:
        name: nginx
        state: restarted

Lees een Ansible-playbook YAML als JSON om de taakstructuur te inspecteren, configuraties te auditeren of te integreren met rapportagepipelines

Zo gebruik je het

  1. 1

    Plak je YAML

    Voer je YAML-data in of plak deze in het invoerveld hierboven. Je kunt ook op 'Voorbeeld laden' klikken om een voorbeeld te proberen, zoals een Kubernetes Deployment, Docker Compose-bestand of Helm values.yaml.

  2. 2

    Bekijk de live JSON-uitvoer

    JSON verschijnt direct in het uitvoerpaneel. Pas Opties aan (inspringing 2 of 4 spaties) om te voldoen aan de vereisten van je doeltool.

  3. 3

    Kopieer of download

    Klik op Kopiëren om de JSON naar je klembord te halen, of op Downloaden om het op te slaan als .json-bestand dat klaar is voor jq, API-aanroepen of andere tooling.

Veelgemaakte YAML-fouten

Tab-inspringing

De YAML-specificatie verbiedt tabblad-tekens voor inspringing — alleen spaties zijn toegestaan. Als je YAML is geschreven of geplakt vanuit een editor die tabs gebruikt, zal de parser een fout genereren. Vervang alle tab-inspringing door spaties (2 of 4 spaties per niveau).

✗ Fout
services:
	web:
		image: nginx:1.25-alpine
✓ Correct
services:
  web:
    image: nginx:1.25-alpine

Niet-overeenkomende inspringing

YAML gebruikt consistente inspringing om nesting te definiëren. Het mengen van verschillende aantallen spaties binnen hetzelfde blok (bijv. 2 spaties op één niveau en 3 op een ander) veroorzaakt verwerkingsfouten. Elk niveau moet consistent met hetzelfde aantal spaties inspringen in het hele document.

✗ Fout
metadata:
  name: my-app
   namespace: production
✓ Correct
metadata:
  name: my-app
  namespace: production

Niet-aangehaalde speciale tekens

Tekens zoals :, #, &, *, {, }, [, ], |, >, !, en @ hebben een speciale betekenis in YAML. Ze niet-aangehaald in waarden gebruiken kan verwerkingsfouten of onverwacht gedrag veroorzaken. Zet waarden die deze tekens bevatten tussen enkele of dubbele aanhalingstekens.

✗ Fout
url: http://example.com:8080/api
tag: #latest
✓ Correct
url: 'http://example.com:8080/api'
tag: '#latest'

Circulaire ankers

YAML staat technisch ankers toe die naar zichzelf verwijzen (circulaire verwijzingen), hoewel dit in de praktijk zelden voorkomt. Een circulair anker zorgt ervoor dat de parser een oneindige uitbreidingslus invoert. De eemeli/yaml-bibliotheek detecteert circulaire ankers en genereert een fout in plaats van te blijven hangen.

✗ Fout
# Circular anchor (rare but possible)
base: &base
  parent: *base
✓ Correct
# Use explicit fields instead of circular references
base:
  parent: null

Verwarring bij meerdere documenten

YAML-bestanden met meerdere --- scheidingstekens bevatten meerdere documenten. Deze tool retourneert alleen het eerste document als JSON. Als je data verwacht van een later document (na het tweede of derde ---), verschijnt het niet in de uitvoer. Splits je YAML op --- en zet elk gedeelte afzonderlijk om als je alle documenten nodig hebt.

✗ Fout
# Only the first document is converted
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
✓ Correct
# Convert each document separately
apiVersion: v1
kind: ConfigMap

Verlies van commentaar

YAML ondersteunt # commentaar maar JSON niet. Alle YAML-commentaar gaat permanent verloren tijdens conversie — dit is een fundamenteel formatverschil, geen beperking van de tool. Als je annotaties in JSON wilt bewaren, encodeer ze dan als een speciaal veld zoals een _comment-sleutel of een metadataobject.

✗ Fout
# This comment will be lost
replicas: 3 # scale this up for production
✓ Correct
replicas: 3
_comment: scale this up for production

Veelvoorkomende gebruiksscenario's

Kubernetes-manifestanalyse
Zet Kubernetes YAML-manifests om naar JSON voor querying met jq, verzenden naar de Kubernetes REST API, verwerking in Terraform-gegevensbronnen of invoer in CI/CD-pipelines die JSON verwachten.
Docker Compose naar JavaScript-tooling
Lees Docker Compose YAML als JSON om servicedefinities, afbeeldingsnamen, poortmappings en omgevingsvariabelen te extraheren voor gebruik in automatiseringsscripts, afhankelijkheidsgraphs of Node.js-tooling.
GitHub Actions API-integratie
Zet GitHub Actions-workflow YAML om naar JSON om de structuur programmatisch te valideren, taak- en stepdefinities te extraheren of te integreren met CI/CD-API's die JSON-workflowspecificaties accepteren.
OpenAPI naar clientcodegeneratie
Veel codegeneratoren (openapi-generator, swagger-codegen, oazapfts) accepteren OpenAPI-specificaties in beide formaten. Zet je YAML-specificatie om naar JSON wanneer een tool specifiek JSON-invoer vereist of wanneer je het moet inspecteren met JSON Schema-validators.
Helm values-analyse
Zet Helm chart values.yaml om naar JSON om rapporten te genereren, waarden tussen omgevingen te vergelijken, in te voeren in beleidshandhavingstools of te verwerken met automatisering die JSON-configuratie verwacht.
Configuratiemigratie naar op JSON gebaseerde tools
Migreer applicatieconfiguratie van YAML (gebruikelijk in infrastructuurtools) naar JSON voor gebruik in JavaScript-omgevingen, REST API's, AWS AppConfig, Azure App Configuration of elk systeem dat configuratie als JSON opslaat.

Technische details

YAML 1.2-specificatie via parseAllDocuments met merge:true
YAML wordt verwerkt via de eemeli/yaml-bibliotheek (v2.8+, CVE-veilig) via parseAllDocuments met { version: '1.2', merge: true }. Het YAML 1.2-schema zorgt ervoor dat kale strings zoals yes en no als strings worden behandeld (niet als booleans), overeenkomend met de huidige YAML-specificatie. De optie merge: true breidt samenvoegsleutels voor ankers/aliassen (<<: *anker) volledig uit zodat de JSON-uitvoer volledige, dereferenced data bevat. YAML met meerdere documenten (--- gescheiden) retourneert het eerste document.
Uitbreiding van ankers en aliassen via bibliotheek
De eemeli/yaml-bibliotheek verwerkt de uitbreiding van ankers (&name) en aliassen (*name) veilig, inclusief detectie van circulaire verwijzingen. Alle gerefereerde datablokken — inclusief uitbreidingen van samenvoegsleutels — worden volledig ingelijnd in de JSON-uitvoer. Dit is de juiste transformatie omdat JSON geen referentie- of ankerconcept heeft. De veilige uitbreiding van de bibliotheek voorkomt oneindige lussen bij foutieve YAML.
Browsergebaseerd — geen upload, geen server
Alle verwerking vindt volledig plaats in de JavaScript-engine van je browser. Er worden geen gegevens via het netwerk verzonden. Invoer groter dan 200 KB schakelt automatisch over van live-modus naar handmatige modus (waarbij een expliciete klik op Omzetten nodig is) om de browser responsief te houden en blokkering van de hoofdthread tijdens zware serialisatie te voorkomen.

Aanbevolen aanpak

Gebruik YAML 1.2-compatibele syntaxis voor schone conversie
Schrijf je YAML met YAML 1.2-conventies — zet aanhalingstekens rond stringwaarden zoals yes, no, on, off, y en n (bijv. enabled: 'yes') om dubbelzinnigheid te vermijden. Deze tool verwerkt met het YAML 1.2-schema (dus dit zijn strings), maar oudere tools in je pipeline kunnen YAML 1.1 gebruiken (waarbij ze booleans worden). Expliciete aanhalingstekens in de bron-YAML is de veiligste aanpak voor alle parsers.
Zet aanhalingstekens rond grote getallen in YAML om precisie te bewaren
JavaScript kan gehele getallen groter dan 2^53 - 1 (9007199254740991) niet exact weergeven. Kubernetes-velden zoals resourceVersion en uid zijn int64 op de server en kunnen deze limiet overschrijden. Zet in je YAML-bron aanhalingstekens rond deze waarden (resourceVersion: '9007199254740993') zodat de parser ze als strings behandelt, die vervolgens exact als stringwaarden in de JSON-uitvoer worden bewaard.
Valideer JSON-uitvoer voordat je het in API's gebruikt
Na het omzetten van YAML naar JSON, valideer het resultaat voordat je het naar een API stuurt, opslaat of programmatisch verwerkt. Gebruik onze JSON-formatter om te bevestigen dat de structuur correct is. Dit is vooral belangrijk voor Kubernetes API-aanroepen, OpenAPI-specificaties en elke door JSON Schema gevalideerde payload, waarbij een structurele fout een verwarrende afwijzing op de API-laag veroorzaakt in plaats van bij de conversiestap.
Splits YAML met meerdere documenten voor het omzetten
Als je YAML-bestand meerdere --- gescheiden documenten bevat en je ze allemaal als JSON nodig hebt, splits dan het bestand eerst op --- en zet elk document afzonderlijk om. Deze tool neemt alleen het eerste document. Een eenvoudige aanpak: splits op '\n---\n' in je editor of met awk, en plak elk gedeelte dan afzonderlijk.
Gebruik jq voor verdere JSON-verwerking
Zodra je JSON hebt van je YAML, is jq de snelste manier om het te bevragen en te transformeren via de commandoregel. Combineer deze tool met jq: zet je YAML online om, plak de JSON, en gebruik dan jq '.spec.replicas' of jq '.services | keys' om precies te extraheren wat je nodig hebt. Voor batchverwerking van veel bestanden gebruik je de yq CLI met de -o json vlag direct.

Veelgestelde vragen

Hoe zet ik YAML online om naar JSON?
Plak je YAML in het invoerveld hierboven. De tool zet het direct in je browser om naar JSON — geen klikken nodig. Je kunt de uitvoersinspringing (2 of 4 spaties) aanpassen via het Opties-paneel. Zodra de JSON in het uitvoergebied verschijnt, klik je op Kopiëren om het naar je klembord te halen, of op Downloaden om het op te slaan als .json-bestand. Alles draait lokaal in je browser — je data verlaat je apparaat nooit.
Hoe gaat deze tool om met YAML met meerdere documenten (--- scheidingsteken)?
YAML ondersteunt meerdere documenten in één stroom, gescheiden door --- (het documentstart-scheidingsteken). Wanneer je een YAML-string met meerdere documenten plakt, gebruikt deze tool parseAllDocuments van de eemeli/yaml-bibliotheek en retourneert het eerste document als JSON. De aanvullende documenten na het eerste worden stilzwijgend genegeerd. Als je alle documenten moet verwerken, splits dan je YAML op --- en zet elk gedeelte afzonderlijk om.
Hoe worden YAML-ankers en -aliassen (&anker en *alias) afgehandeld?
YAML-ankers (&name) definiëren een herbruikbaar blok en aliassen (*name) verwijzen ernaar. Deze tool breidt alle ankers en aliassen volledig uit tijdens het verwerken, zodat de uitvoer JSON de volledige, dereferenced data bevat. Als een YAML-anker een set resourcelimieten definieert en meerdere services er via samenvoegsleutels (<<: *anker) naar verwijzen, toont de JSON-uitvoer elk veld expliciet ingelijnd voor elke service. Dit is het juiste gedrag voor JSON, dat geen concept van referenties heeft. De eemeli/yaml-bibliotheek verwerkt de uitbreiding van ankers/aliassen veilig, inclusief detectie van circulaire verwijzingen.
Blijft YAML-commentaar bewaard in de JSON-uitvoer?
Nee. JSON ondersteunt geen commentaar van welke soort dan ook — geen #, // of /* */ syntaxis. Bij het omzetten van YAML naar JSON gaat alle commentaar permanent verloren. Dit is een fundamenteel formatverschil, geen beperking van deze tool. Als je annotaties wilt bewaren, overweeg dan ze te encoderen als een speciaal JSON-veld (zoals een _comment-sleutel) vóór het omzetten, of bewaar de YAML-bron als de gezaghebbende versie met commentaar.
Hoe gebruik ik deze tool met een Kubernetes-manifest?
Plak je Kubernetes YAML-manifest (van een .yaml-bestand, kubectl get -o yaml-uitvoer of een Helm-sjabloon) in het invoerveld. De JSON-uitvoer kan dan worden opgevraagd met jq, direct worden verzonden naar de Kubernetes REST API, worden gebruikt in Terraform-gegevensbronnen of worden verwerkt door tooling die JSON verwacht. Een veelvoorkomende workflow is het omzetten van YAML-manifests naar JSON om specifieke velden te extraheren — bijvoorbeeld jq '.spec.replicas' op de JSON-uitvoer om het aantal replica's te controleren. Het K8s Deployment-voorbeeld hierboven toont een volledig manifest dat je kunt laden en aanpassen.
Hoe helpt deze tool met Docker Compose-bestanden?
Docker Compose-bestanden zijn conventioneel YAML. Ze omzetten naar JSON laat je servicedefinities verwerken met JavaScript-tooling, jq-scripts of elk systeem dat JSON leest. Veelvoorkomende gebruiksscenario's zijn het extraheren van alle afbeeldingsnamen om een afhankelijkheidslijst te maken, het genereren van rapporten uit een compose-bestand, of het invoeren van Compose-configuraties in CI/CD-orchestratietools die JSON accepteren. Plak je compose.yaml in de invoer en de JSON-uitvoer is direct klaar voor verdere verwerking.
Wat is het verschil tussen YAML 1.1 en YAML 1.2, en welke gebruikt deze tool?
YAML 1.1 (de oudere specificatie, nog steeds gebruikt door PyYAML, Ansible, Ruby Psych en veel Kubernetes-tools) behandelt kale strings zoals yes, no, on, off, y en n als boolean true/false-waarden. Dit veroorzaakte het beruchte Norway-probleem waarbij de ISO-landcode 'NO' als false werd verwerkt. YAML 1.2 (de huidige specificatie, uitgebracht in 2009) heeft dit opgelost: alle kale strings zijn strings en alleen true/false zijn boolean. Deze tool gebruikt het YAML 1.2-schema voor verwerking, wat betekent dat yes en no in je YAML-invoer worden bewaard als de stringwaarden 'yes' en 'no' in de JSON-uitvoer — niet als boolean true en false. Dit is het juiste, moderne gedrag. Als je YAML oorspronkelijk is geschreven voor een YAML 1.1-parser en afhankelijk is van yes/no als booleans, wees er dan van bewust dat de JSON-uitvoer ze als strings behandelt.
Waarom verbiedt YAML tab-inspringing?
De YAML-specificatie verbiedt expliciet tabblad-tekens (\t) voor inspringing — alleen spaties zijn toegestaan. Dit is een bewuste ontwerpbeslissing om de dubbelzinnigheid te vermijden die wordt veroorzaakt door inconsistente tabbreedtes in verschillende editors. Als je YAML tabs gebruikt voor inspringing (wat veel voorkomt bij kopiëren uit teksteditors die spaties automatisch omzetten naar tabs), zal de YAML-parser een verwerkingsfout genereren. De oplossing is alle tab-inspringing te vervangen door spaties. De meeste code-editors hebben een instelling om tabs om te zetten naar spaties (bijvoorbeeld 'Tabs uitbreiden' in Vim, 'Spaties invoegen' in VS Code). Als je YAML plakt en een verwerkingsfout ziet met 'tab' of 'inspringing', is dit vrijwel altijd de oorzaak.
Kunnen grote getallen precisie verliezen bij het omzetten van YAML naar JSON?
Ja. Dit is een fundamentele JavaScript-beperking die alle browsergebaseerde tools beïnvloedt. JavaScript's IEEE 754 dubbele precisie float kan gehele getallen alleen exact weergeven tot 2^53 - 1 (9007199254740991). YAML-getallen groter dan dit — zoals Kubernetes int64-velden zoals resourceVersion — worden stilzwijgend afgerond wanneer de YAML-parser ze doorgeeft aan JavaScript's number-type. Zo wordt de YAML-waarde 9007199254740993 in de JSON-uitvoer 9007199254740992. De veilige oplossing is het aanhalingstekens plaatsen rond grote getallen in je YAML-bron (resourceVersion: '9007199254740993') zodat de parser ze als strings behandelt, die vervolgens exact als stringwaarden in JSON worden bewaard.
Hoe kan ik YAML op de commandoregel omzetten naar JSON?
De populairste aanpak gebruikt yq (de versie van Mike Farah) en jq. Installeer yq: brew install yq op macOS of download van github.com/mikefarah/yq/releases voor Linux. Voer dan uit: yq -o json input.yaml om een YAML-bestand om te zetten naar JSON, of cat input.yaml | yq -o json - om van stdin te pipen. Voor mooi afgedrukte uitvoer: yq -o json input.yaml | jq . — dit pipt de JSON via jq voor consistente opmaak. Voor een Python-eén-liner: python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml. Voor meerdere documenten met yq: yq -o json '.[0]' input.yaml om alleen het eerste document als JSON te extraheren.
Worden mijn YAML-gegevens naar een server verzonden bij gebruik van deze tool?
Nee. Alle conversie vindt volledig plaats in je browser via JavaScript. Je YAML-data wordt nooit via het netwerk verzonden, nooit opgeslagen op een server, en nooit gelogd of geanalyseerd. Dit maakt de tool veilig voor gebruik met Kubernetes-secrets, databasegegevens, interne Helm values, API-sleutels in configuratiebestanden en alle andere gevoelige infrastructuurconfiguratie. Je kunt dit verifiëren door het tabblad Netwerk van je browser te openen — je ziet nul verzoeken bij het plakken van YAML.
Is er een bestandsgroottelimiet voor YAML-invoer?
Er is geen harde bestandsgroottelimiet, maar grote invoer (meer dan 200 KB) schakelt automatisch over van live-conversie naar handmatige modus. In handmatige modus verschijnt een Omzetten-knop en vindt conversie alleen plaats wanneer je erop klikt — dit voorkomt dat de hoofdthread van de browser bij elke toetsaanslag blokkeert. Voor zeer grote YAML-bestanden (meerdere megabytes) kun je beter commandoregeltools zoals yq gebruiken voor betere prestaties. De tool verwerkt efficiënt typische realistische payloads zoals volledige Kubernetes-naamruimte-exports, grote OpenAPI-specificaties en Helm chart values-bestanden met meerdere services.

Gerelateerde tools

Alle tools bekijken →