YAML zu JSON Konverter
YAML einfügen und sofort JSON erhalten. Live-Konvertierung im Browser. K8s-Manifeste, OpenAPI-Spezifikationen, Helm-Werte unterstützt. 100 % privat.
Optionen · 2 Leerzeichen
Was ist JSON?
JSON (JavaScript Object Notation) ist ein leichtgewichtiges, textbasiertes Datenaustauschformat, standardisiert als RFC 8259 und ECMA-404. Es unterstützt sechs Datentypen — Zeichenketten, Zahlen, boolesche Werte, null, Arrays und Objekte — mit einer strikten, minimalen Syntax, die praktisch jede Programmiersprache, API und Toolchain nativ parsen kann. Während YAML das bevorzugte Format für von Menschen geschriebene Konfigurationsdateien ist (Kubernetes-Manifeste, GitHub Actions, Ansible-Playbooks, Helm-Werte), ist JSON das universelle maschinenlesbare Format für APIs, Automatisierungsskripte und programmatische Datenverarbeitung.
Das Konvertieren von YAML nach JSON ist daher eine der häufigsten Aufgaben in DevOps und der Backend-Entwicklung — Sie haben eine YAML-Konfigurationsdatei, benötigen aber JSON, um sie in eine REST-API einzuspeisen, mit jq abzufragen oder mit JavaScript-Werkzeugen zu verarbeiten.
Dieses Werkzeug hat vier wichtige Alleinstellungsmerkmale im Vergleich zu typischen Online-Konvertern:
**1. Multi-Dokument-YAML-Behandlung.** YAML unterstützt mehrere Dokumente in einem einzigen Stream, getrennt durch --- (den Dokumentstartmarker). Viele reale YAML-Dateien — einschließlich einiger Kubernetes-Manifeste und Ansible-Playbooks — enthalten mehrere Dokumente. Dieses Werkzeug verwendet parseAllDocuments aus der eemeli/yaml-Bibliothek mit { version: '1.2', merge: true } Optionen und gibt das erste Dokument als JSON zurück.
**2. Anker- und Alias-Expansion.** YAML-Anker (&Name) und -Aliase (*Name) ermöglichen die Wiederverwendung von Datenblöcken — eine leistungsstarke YAML-Funktion ohne JSON-Äquivalent. Dieses Werkzeug expandiert alle Anker und Aliase (einschließlich Merge-Schlüsseln: <<: *Anker) vollständig, sodass die JSON-Ausgabe vollständige, eigenständige Daten ohne Referenzen enthält. Vergleichen Sie dies mit der umgekehrten Richtung unter JSON zu YAML Konverter.
**3. Kommentarverlust — pädagogische Transparenz.** YAML unterstützt #-Kommentare, die häufig in Kubernetes-Manifesten, Helm-Werten und Ansible-Playbooks verwendet werden, um Absichten zu dokumentieren. JSON hat keine Kommentarsyntax, sodass Kommentare bei der Konvertierung dauerhaft verloren gehen. Dieses Werkzeug macht dies explizit, damit Sie wissen, was zu erwarten ist. Weitere Informationen zu Format-Tradeoffs finden Sie in unserem Tiefeneinblick zu YAML-JSON-Unterschieden.
**4. 100 % browserbasierte Privatsphäre.** Ihre YAML-Daten — die oft Kubernetes-Secrets, Datenbankzugangsdaten, Helm-Werte mit Passwörtern und interne Service-Konfigurationen enthalten — verlassen Ihren Browser niemals. Es werden keine Daten an einen Server gesendet. Nach der Konvertierung nach JSON können Sie das Ergebnis mit unserem JSON-Formatierer validieren und formatieren.
// 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"
// } Hauptfunktionen
Live-Konvertierung
Die JSON-Ausgabe wird sofort aktualisiert, während Sie YAML tippen oder einfügen — kein Konvertieren-Button nötig. Große Eingaben (>200 KB) wechseln automatisch in den manuellen Modus, um den Browser reaktionsfähig zu halten.
2 oder 4 Leerzeichen Einrückung
Wechseln Sie zwischen 2- und 4-Leerzeichen-Einrückung für die JSON-Ausgabe. 2 Leerzeichen sind Standard für die meisten Werkzeuge und APIs; 4 Leerzeichen entsprechen einigen Stilguides und Editor-Standards.
Multi-Dokument-Unterstützung
Verarbeitet YAML-Streams mit mehreren durch --- getrennten Dokumenten. Das erste Dokument wird nach JSON konvertiert und zurückgegeben. Nützlich für Kubernetes-Multi-Ressourcen-Dateien und Ansible-Playbooks.
Anker- und Alias-Expansion
Expandiert YAML-Anker (&Name) und -Aliase (*Name) vollständig, einschließlich Merge-Schlüsseln (<<: *Anker). Die JSON-Ausgabe enthält vollständige, dereferenzierte Daten ohne Referenzen — korrektes Verhalten, da JSON kein Äquivalent hat.
100 % browserbasierte Privatsphäre
Die gesamte Konvertierung läuft lokal in Ihrem Browser mit JavaScript. Ihre YAML-Daten — einschließlich Secrets, Zugangsdaten und Produktionskonfigurationen — werden niemals an einen Server gesendet, niemals protokolliert und niemals gespeichert.
Unterstützt K8s, Compose, Helm und OpenAPI
Optimiert für reale DevOps-Anwendungsfälle: Kubernetes-Manifeste, Docker-Compose-Stacks, Helm-Chart-Werte, GitHub-Actions-Workflows, OpenAPI-Spezifikationen und Ansible-Playbooks — mit Beispielen für jeden Fall.
Beispiele
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 Konvertiert ein Kubernetes-Deployment-Manifest von YAML nach JSON — nützlich zum Abfragen mit jq, zum Senden an die Kubernetes-API oder zum Einspeisen in Terraform und 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: {} Konvertiert ein Docker-Compose-YAML nach JSON für die programmatische Verarbeitung, das Einspeisen in Automatisierungsskripte oder die Verarbeitung mit JavaScript-Werkzeugen
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 Parst ein GitHub-Actions-Workflow-YAML nach JSON, um bestimmte Felder abzufragen, die Struktur zu validieren oder mit APIs zu integrieren, die JSON verarbeiten
OpenAPI-Spezifikation
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 Konvertiert eine OpenAPI-3.0-Spezifikation von YAML nach JSON für die Verwendung mit Client-Code-Generatoren, API-Testwerkzeugen oder programmatischer Schema-Inspektion
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 Konvertiert Helm-Chart-values.yaml nach JSON zur Analyse, Berichterstellung oder zum Einspeisen in Werkzeuge, die JSON-Konfiguration erwarten
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 Parst ein Ansible-Playbook-YAML nach JSON zum Untersuchen der Task-Struktur, Prüfen von Konfigurationen oder Integrieren mit Reporting-Pipelines
Anleitung
- 1
YAML einfügen
Geben Sie Ihre YAML-Daten in das Eingabefeld oben ein oder fügen Sie sie ein. Sie können auch auf „Beispiel laden“ klicken, um ein Beispiel wie ein Kubernetes-Deployment, eine Docker-Compose-Datei oder eine Helm-values.yaml auszuprobieren.
- 2
Live-JSON-Ausgabe anzeigen
JSON erscheint sofort im Ausgabebereich. Passen Sie die Optionen an (Einrückung 2 oder 4 Leerzeichen), um die Anforderungen Ihres Zielwerkzeugs zu erfüllen.
- 3
Kopieren oder Herunterladen
Klicken Sie auf Kopieren, um das JSON in Ihre Zwischenablage zu übernehmen, oder auf Herunterladen, um es als .json-Datei für jq, API-Aufrufe oder andere Downstream-Werkzeuge zu speichern.
Häufige YAML-Fehler
Tab-Einrückung
Die YAML-Spezifikation verbietet Tab-Zeichen zur Einrückung — nur Leerzeichen sind erlaubt. Wenn Ihr YAML in einem Editor geschrieben oder von einem Editor kopiert wurde, der Tabs verwendet, wirft der Parser einen Fehler. Ersetzen Sie alle Tab-Einrückungen durch Leerzeichen (2 oder 4 Leerzeichen pro Ebene).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Inkonsistente Einrückung
YAML verwendet konsistente Einrückung zur Definition von Verschachtelung. Das Mischen verschiedener Leerzeichenanzahlen innerhalb desselben Blocks (z. B. 2 Leerzeichen auf einer Ebene und 3 auf einer anderen) verursacht Parse-Fehler. Jede Ebene muss im gesamten Dokument um die gleiche Anzahl von Leerzeichen eingerückt sein.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Sonderzeichen ohne Anführungszeichen
Zeichen wie :, #, &, *, {, }, [, ], |, >, ! und @ haben in YAML eine besondere Bedeutung. Ihre unzitierte Verwendung in Werten kann Parse-Fehler oder unerwartetes Verhalten verursachen. Setzen Sie Werte, die diese Zeichen enthalten, in einfache oder doppelte Anführungszeichen.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Anker-Zyklen
YAML erlaubt technisch gesehen Anker, die auf sich selbst verweisen (Zirkelreferenzen), obwohl dies in der Praxis selten ist. Ein zirkulärer Anker verursacht, dass der Parser in eine unendliche Expansionsschleife eintritt. Die eemeli/yaml-Bibliothek erkennt zirkuläre Anker und wirft einen Fehler, anstatt zu hängen.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Multi-Dokument-Verwirrung
YAML-Dateien mit mehreren ---Trennzeichen enthalten mehrere Dokumente. Dieses Werkzeug gibt nur das erste Dokument als JSON zurück. Wenn Sie Daten aus einem späteren Dokument (nach dem zweiten oder dritten ---) erwartet haben, erscheinen sie nicht in der Ausgabe. Teilen Sie Ihr YAML bei --- und konvertieren Sie jeden Abschnitt separat, wenn Sie alle Dokumente benötigen.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Kommentarverlust
YAML unterstützt #-Kommentare, JSON jedoch nicht. Alle YAML-Kommentare gehen bei der Konvertierung dauerhaft verloren — dies ist ein grundlegender Formatunterschied, keine Einschränkung des Werkzeugs. Wenn Sie Anmerkungen in JSON beibehalten müssen, kodieren Sie sie als dediziertes Feld, z. B. einen _comment-Schlüssel oder ein Metadaten-Objekt.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Häufige Anwendungsfälle
- Kubernetes-Manifest-Analyse
- Konvertieren Sie Kubernetes-YAML-Manifeste nach JSON für Abfragen mit jq, das Senden an die Kubernetes-REST-API, die Verarbeitung in Terraform-Datenquellen oder das Einspeisen in CI/CD-Pipelines, die JSON erwarten.
- Docker Compose zu JavaScript-Werkzeugen
- Parsen Sie Docker-Compose-YAML nach JSON, um Service-Definitionen, Image-Namen, Port-Mappings und Umgebungsvariablen für Automatisierungsskripte, Abhängigkeitsgraphen oder Node.js-Werkzeuge zu extrahieren.
- GitHub-Actions-API-Integration
- Konvertieren Sie GitHub-Actions-Workflow-YAML nach JSON, um die Struktur programmatisch zu validieren, Job- und Schritt-Definitionen zu extrahieren oder mit CI/CD-APIs zu integrieren, die JSON-Workflow-Spezifikationen akzeptieren.
- OpenAPI zu Client-Code-Generierung
- Viele Code-Generatoren (openapi-generator, swagger-codegen, oazapfts) akzeptieren OpenAPI-Spezifikationen in beiden Formaten. Konvertieren Sie Ihre YAML-Spezifikation nach JSON, wenn ein Werkzeug speziell JSON-Eingabe erfordert oder wenn Sie es mit JSON-Schema-Validatoren überprüfen müssen.
- Helm-Werte-Analyse
- Konvertieren Sie Helm-Chart-values.yaml nach JSON, um Berichte zu erstellen, Werte über verschiedene Umgebungen zu vergleichen, in Richtlinien-Durchsetzungswerkzeuge einzuspeisen oder mit Automatisierung zu verarbeiten, die JSON-Konfiguration erwartet.
- Konfigurationsmigration zu JSON-basierten Werkzeugen
- Migrieren Sie Anwendungskonfigurationen von YAML (in Infrastrukturwerkzeugen verbreitet) nach JSON für die Verwendung in JavaScript-Umgebungen, REST-APIs, AWS AppConfig, Azure App Configuration oder einem beliebigen System, das Konfiguration als JSON speichert.
Technische Details
- YAML-1.2-Spezifikation über parseAllDocuments mit merge:true
- YAML wird mit der eemeli/yaml-Bibliothek (v2.8+, CVE-sicher) über parseAllDocuments mit { version: '1.2', merge: true } geparst. Das YAML-1.2-Schema stellt sicher, dass nackte Zeichenketten wie yes und no als Zeichenketten behandelt werden (nicht als boolesche Werte), was der aktuellen YAML-Spezifikation entspricht. Die merge: true-Option expandiert Anker/Alias-Merge-Schlüssel (<<: *Anker) vollständig, sodass die JSON-Ausgabe vollständige, dereferenzierte Daten enthält. Multi-Dokument-YAML (durch --- getrennt) gibt das erste Dokument zurück.
- Anker- und Alias-Expansion über Bibliothek
- Die eemeli/yaml-Bibliothek behandelt die Anker (&Name) und Alias (*Name) Expansion sicher, einschließlich Zirkelreferenz-Erkennung. Alle referenzierten Datenblöcke — einschließlich Merge-Schlüssel-Expansionen — werden vollständig in der JSON-Ausgabe inline eingebettet. Dies ist die korrekte Transformation, da JSON kein Referenz- oder Ankerkonzept hat.
- Browserbasiert — kein Upload, kein Server
- Die gesamte Verarbeitung findet vollständig in der JavaScript-Engine Ihres Browsers statt. Es werden keine Daten über das Netzwerk übertragen. Eingaben größer als 200 KB wechseln automatisch vom Live-Modus in den manuellen Modus (erfordert einen expliziten Konvertieren-Klick), um den Browser reaktionsfähig zu halten und das Blockieren des Haupt-Threads bei umfangreicher Serialisierung zu verhindern.
Best Practices
- YAML-1.2-kompatible Syntax für saubere Konvertierung verwenden
- Verfassen Sie Ihr YAML mit YAML-1.2-Konventionen — setzen Sie yes, no, on, off, y und n als Zeichenkettenwerte explizit in Anführungszeichen (z. B. enabled: 'yes'), um Mehrdeutigkeiten zu vermeiden. Dieses Werkzeug parst mit dem YAML-1.2-Schema (also sind es Zeichenketten), aber ältere Werkzeuge in Ihrer Pipeline verwenden möglicherweise YAML 1.1 (bei dem sie boolesche Werte werden). Explizites Anführungszeichen im YAML-Quellcode ist die sicherste Praxis über alle Parser hinweg.
- Große Zahlen in YAML anführen, um Präzision zu erhalten
- JavaScript kann Ganzzahlen, die größer als 2^53 - 1 (9007199254740991) sind, nicht exakt darstellen. Kubernetes-Felder wie resourceVersion und uid sind auf dem Server int64 und können dieses Limit überschreiten. Setzen Sie diese Werte in Ihrer YAML-Quelle in Anführungszeichen (resourceVersion: '9007199254740993'), damit der Parser sie als Zeichenketten behandelt, die dann exakt in der JSON-Ausgabe als Zeichenkettenwerte erhalten bleiben.
- JSON-Ausgabe vor der Verwendung in APIs validieren
- Validieren Sie nach der Konvertierung von YAML nach JSON das Ergebnis, bevor Sie es an eine API senden, speichern oder programmatisch verarbeiten. Verwenden Sie unseren JSON-Formatierer, um zu bestätigen, dass die Struktur korrekt ist. Dies ist besonders wichtig für Kubernetes-API-Aufrufe, OpenAPI-Spezifikationen und JSON-Schema-validierte Payloads.
- Multi-Dokument-YAML vor der Konvertierung trennen
- Wenn Ihre YAML-Datei mehrere durch --- getrennte Dokumente enthält und Sie alle als JSON benötigen, teilen Sie die Datei zuerst bei --- und konvertieren Sie jedes Dokument einzeln. Dieses Werkzeug nimmt nur das erste Dokument. Ein einfacher Ansatz: Bei '\n---\n' in Ihrem Editor oder mit awk aufteilen und dann jeden Abschnitt separat einfügen.
- jq für nachgelagerte JSON-Verarbeitung verwenden
- Sobald Sie JSON aus Ihrem YAML haben, ist jq der schnellste Weg, es über die Befehlszeile abzufragen und zu transformieren. Kombinieren Sie dieses Werkzeug mit jq: Konvertieren Sie Ihr YAML online, fügen Sie das JSON ein, und verwenden Sie dann jq '.spec.replicas' oder jq '.services | keys', um genau das zu extrahieren, was Sie benötigen. Für die Stapelverarbeitung vieler Dateien verwenden Sie das yq-CLI mit dem -o-json-Flag direkt.
Häufig gestellte Fragen
Wie konvertiere ich YAML online nach JSON?
Wie geht dieses Werkzeug mit Multi-Dokument-YAML (---Trennzeichen) um?
Wie werden YAML-Anker und -Aliase (&Anker und *Alias) behandelt?
Werden YAML-Kommentare in der JSON-Ausgabe beibehalten?
Wie verwende ich dieses Werkzeug mit einem Kubernetes-Manifest?
Wie hilft dieses Werkzeug bei Docker-Compose-Dateien?
Was ist der Unterschied zwischen YAML 1.1 und YAML 1.2, und welches verwendet dieses Werkzeug?
Warum verbietet YAML Tab-Einrückung?
Können große Zahlen bei der Konvertierung von YAML nach JSON an Präzision verlieren?
Wie kann ich YAML über die Befehlszeile nach JSON konvertieren?
Werden meine YAML-Daten bei der Verwendung dieses Werkzeugs an einen Server gesendet?
Gibt es eine Dateigrößenbeschränkung für YAML-Eingaben?
Verwandte Werkzeuge
Alle Werkzeuge anzeigen →Base64-Dekodierer & -Kodierer
Kodierung & Formatierung
Base64 online kostenlos dekodieren und kodieren. Echtzeitkonvertierung mit voller UTF-8- und Emoji-Unterstützung. 100 % privat — läuft in Ihrem Browser. Keine Anmeldung nötig.
JSON-Formatierer & Validator
Kodierung & Formatierung
JSON sofort im Browser formatieren, validieren und verschönern. Kostenloses Online-Tool mit Syntaxprüfung, Fehlererkennung, Minifizierung und Ein-Klick-Kopie. 100 % privat.
JSON zu YAML Konverter
Kodierung & Formatierung
JSON einfügen und sofort YAML erhalten. Live-Konvertierung im Browser. K8s/Compose-kompatibel, 2/4-Leerzeichen-Einrückung, intelligentes Quoting. 100 % privat.
URL-Kodierer & -Dekodierer mit integriertem URL-Parser
Kodierung & Formatierung
URL einfügen zum Dekodieren oder Kodieren in Echtzeit. Integrierter URL-Parser zerlegt jede Komponente in bearbeitbare Felder. Dualmodus: encodeURI & encodeURIComponent. Privat — keine Daten an Server.
Zahlensystem-Konverter — Binär, Hex, Dezimal & Oktal
Konvertierungswerkzeuge
Zahlen zwischen Binär, Hexadezimal, Dezimal, Oktal und beliebigen Basen (2–36) sofort konvertieren. Kostenlos, privat, ohne Anmeldung — alles läuft in Ihrem Browser.
Bilder Online Komprimieren — JPEG, PNG & WebP
Konvertierungswerkzeuge
Bildgröße um bis zu 80 % reduzieren — JPEG, PNG & WebP im Browser komprimieren, kein Upload nötig. Stapelverarbeitung für 20 Bilder, Qualität anpassen, Vorher-Nachher vergleichen. Kostenlos & privat.