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.
Opties · 2 spaties
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
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
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
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).
services: web: image: nginx:1.25-alpine
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.
metadata: name: my-app namespace: production
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.
url: http://example.com:8080/api tag: #latest
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.
# Circular anchor (rare but possible) base: &base parent: *base
# 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.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# 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.
# This comment will be lost replicas: 3 # scale this up for production
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?
Hoe gaat deze tool om met YAML met meerdere documenten (--- scheidingsteken)?
Hoe worden YAML-ankers en -aliassen (&anker en *alias) afgehandeld?
Blijft YAML-commentaar bewaard in de JSON-uitvoer?
Hoe gebruik ik deze tool met een Kubernetes-manifest?
Hoe helpt deze tool met Docker Compose-bestanden?
Wat is het verschil tussen YAML 1.1 en YAML 1.2, en welke gebruikt deze tool?
Waarom verbiedt YAML tab-inspringing?
Kunnen grote getallen precisie verliezen bij het omzetten van YAML naar JSON?
Hoe kan ik YAML op de commandoregel omzetten naar JSON?
Worden mijn YAML-gegevens naar een server verzonden bij gebruik van deze tool?
Is er een bestandsgroottelimiet voor YAML-invoer?
Gerelateerde tools
Alle tools bekijken →Base64 decoderen en encoderen online
Encodering en formattering
Base64 decoderen en encoderen direct in je browser. Realtime conversie met volledige UTF-8- en emoji-ondersteuning. 100% privé — geen account nodig.
Online JSON-formatter & validator
Encodering en formattering
Formatteer en valideer JSON direct in je browser. Gratis online tool met syntaxvalidatie, foutdetectie, minificeren en kopiëren met één klik. 100% privé.
JSON naar YAML omzetter
Encodering en formattering
Plak JSON en krijg direct YAML. Live conversie in je browser. K8s/Compose-klaar, 2/4 spaties inspringing, slimme aanhalingstekens. 100% privé, geen upload.
URL decoderen en encoderen online
Encodering en formattering
Decodeer of encodeer URL's in realtime met ingebouwde URL-parser. Twee modi: encodeURI en encodeURIComponent. 100% privé, geen data naar servers.
Talstelsel omrekenen — online converter
Omrekentools
Reken je getal direct om tussen binair, hex, decimaal, octaal en elk talstelsel (2-36). Gratis en privé — alles draait in je browser.
Afbeelding comprimeren — online tool
Omrekentools
Comprimeer JPEG, PNG & WebP tot 80% kleiner — in je browser, zonder uploaden. Batch 20 afbeeldingen, stel kwaliteit in, vergelijk voor & na. Gratis & privé.