Skip to content

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.

Kein Tracking Läuft im Browser Kostenlos
Optionen · 2 Leerzeichen
Einrückung
0 Zeichen
JSON Ausgabe
0 Zeilen
Geprüft auf YAML-1.2-Spezifikationskonformität, Anker/Alias-Expansion und korrekte Multi-Dokument-Behandlung — Go Tools Engineering Team · May 4, 2026

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. 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. 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. 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).

✗ Falsch
services:
	web:
		image: nginx:1.25-alpine
✓ Richtig
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.

✗ Falsch
metadata:
  name: my-app
   namespace: production
✓ Richtig
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.

✗ Falsch
url: http://example.com:8080/api
tag: #latest
✓ Richtig
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.

✗ Falsch
# Circular anchor (rare but possible)
base: &base
  parent: *base
✓ Richtig
# 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.

✗ Falsch
# Only the first document is converted
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
✓ Richtig
# 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.

✗ Falsch
# This comment will be lost
replicas: 3 # scale this up for production
✓ Richtig
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?
Fügen Sie Ihr YAML in das Eingabefeld oben ein. Das Werkzeug konvertiert es sofort im Browser nach JSON — kein Klick auf einen Button nötig. Sie können die Ausgabeeinrückung (2 oder 4 Leerzeichen) im Optionsbereich anpassen. Sobald das JSON im Ausgabebereich erscheint, klicken Sie auf Kopieren, um es in die Zwischenablage zu übernehmen, oder auf Herunterladen, um es als .json-Datei zu speichern. Alles läuft lokal — Ihre Daten verlassen niemals Ihr Gerät.
Wie geht dieses Werkzeug mit Multi-Dokument-YAML (---Trennzeichen) um?
YAML unterstützt mehrere Dokumente in einem einzigen Stream, getrennt durch --- (den Dokumentstartmarker). Wenn Sie einen Multi-Dokument-YAML-String einfügen, verwendet dieses Werkzeug parseAllDocuments aus der eemeli/yaml-Bibliothek und gibt das erste Dokument als JSON zurück. Die zusätzlichen Dokumente nach dem ersten werden stillschweigend ignoriert. Wenn Sie alle Dokumente verarbeiten müssen, teilen Sie Ihr YAML bei --- und konvertieren Sie jeden Abschnitt einzeln.
Wie werden YAML-Anker und -Aliase (&Anker und *Alias) behandelt?
YAML-Anker (&Name) definieren einen wiederverwendbaren Block, und Aliase (*Name) referenzieren ihn. Dieses Werkzeug expandiert beim Parsen alle Anker und Aliase vollständig, sodass die JSON-Ausgabe die vollständigen, dereferenzierten Daten enthält. Zum Beispiel: Wenn ein YAML-Anker einen Satz Ressourcenlimits definiert und mehrere Services ihn mit Merge-Schlüsseln (<<: *Anker) referenzieren, zeigt die JSON-Ausgabe jedes Feld explizit inline für jeden Service. Die eemeli/yaml-Bibliothek behandelt die Anker/Alias-Expansion sicher, einschließlich Zirkelreferenz-Erkennung.
Werden YAML-Kommentare in der JSON-Ausgabe beibehalten?
Nein. JSON unterstützt keinerlei Kommentare — kein #, //, oder /* */ Syntax. Wenn Sie YAML nach JSON konvertieren, gehen alle Kommentare dauerhaft verloren. Dies ist ein grundlegender Formatunterschied, keine Einschränkung dieses Werkzeugs. Wenn Sie Anmerkungen beibehalten müssen, erwägen Sie, sie als dediziertes JSON-Feld (z. B. ein _comment-Schlüssel) zu kodieren, bevor Sie konvertieren, oder halten Sie das YAML als autoritative Quelle mit Kommentaren.
Wie verwende ich dieses Werkzeug mit einem Kubernetes-Manifest?
Fügen Sie Ihr Kubernetes-YAML-Manifest (aus einer .yaml-Datei, kubectl-get-o-yaml-Ausgabe oder einem Helm-Template) in das Eingabefeld ein. Die JSON-Ausgabe kann dann mit jq abgefragt, direkt an die Kubernetes-REST-API gesendet, in Terraform-Datenquellen verwendet oder von jedem Werkzeug verarbeitet werden, das JSON erwartet. Ein häufiger Workflow ist die Konvertierung von YAML-Manifesten nach JSON, um bestimmte Felder zu extrahieren — zum Beispiel: jq '.spec.replicas' auf der JSON-Ausgabe, um Replikaanzahlen über Deployments hinweg zu überprüfen.
Wie hilft dieses Werkzeug bei Docker-Compose-Dateien?
Docker-Compose-Dateien sind konventionell YAML. Die Konvertierung nach JSON ermöglicht die Verarbeitung von Service-Definitionen mit JavaScript-Werkzeugen, jq-Skripten oder einem beliebigen System, das JSON liest. Häufige Anwendungsfälle sind das Extrahieren aller Image-Namen zum Erstellen einer Abhängigkeitsliste, die Berichterstellung aus einer Compose-Datei oder das Einspeisen von Compose-Konfigurationen in CI/CD-Orchestrierungswerkzeuge, die JSON akzeptieren.
Was ist der Unterschied zwischen YAML 1.1 und YAML 1.2, und welches verwendet dieses Werkzeug?
YAML 1.1 (die ältere Spezifikation, die noch von PyYAML, Ansible, Ruby Psych und vielen Kubernetes-Werkzeugen verwendet wird) behandelt nackte Zeichenketten wie yes, no, on, off, y und n als boolesche true/false-Werte. Dies verursachte das berühmte Norway-Problem, bei dem der ISO-Ländercode 'NO' als false geparst wurde. YAML 1.2 (die aktuelle Spezifikation, 2009 veröffentlicht) hat dies behoben: Alle nackten Zeichenketten sind Zeichenketten, und nur true/false sind boolesche Werte. Dieses Werkzeug verwendet das YAML-1.2-Schema zum Parsen, was bedeutet, dass yes und no in Ihrer YAML-Eingabe als die Zeichenkettenwerte 'yes' und 'no' in der JSON-Ausgabe erhalten bleiben — nicht als boolesche true und false.
Warum verbietet YAML Tab-Einrückung?
Die YAML-Spezifikation verbietet explizit Tab-Zeichen (\t) für Einrückungen — nur Leerzeichen sind erlaubt. Dies ist eine bewusste Designentscheidung, um die durch inkonsistente Tab-Breite über Editoren hinweg verursachte Mehrdeutigkeit zu vermeiden. Wenn Ihr YAML Tabs zur Einrückung verwendet (häufig beim Kopieren aus Texteditoren, die Leerzeichen automatisch in Tabs umwandeln), wirft der YAML-Parser einen Parse-Fehler. Die Lösung ist, alle Tab-Einrückungen durch Leerzeichen zu ersetzen.
Können große Zahlen bei der Konvertierung von YAML nach JSON an Präzision verlieren?
Ja. Dies ist eine grundlegende JavaScript-Einschränkung, die alle browserbasierten Werkzeuge betrifft. JavaScripts IEEE-754-Doppelpräzisions-Float kann Ganzzahlen nur exakt bis 2^53 - 1 (9007199254740991) darstellen. YAML-Zahlen, die größer sind — wie Kubernetes-int64-Felder wie resourceVersion — werden beim Übergeben durch den YAML-Parser an JavaScripts Number-Typ stillschweigend gerundet. Die sichere Abhilfe ist, große Zahlen in Ihrer YAML-Quelle mit Anführungszeichen zu versehen (resourceVersion: '9007199254740993'), sodass der Parser sie als Zeichenketten behandelt, die dann exakt in JSON als Zeichenkettenwerte erhalten bleiben.
Wie kann ich YAML über die Befehlszeile nach JSON konvertieren?
Der beliebteste Ansatz verwendet yq (Mike Farahs Version) und jq. Installieren Sie yq: brew install yq auf macOS oder laden Sie es von github.com/mikefarah/yq/releases für Linux herunter. Dann führen Sie aus: yq -o json input.yaml zum Konvertieren einer YAML-Datei nach JSON, oder cat input.yaml | yq -o json - zum Pipen von stdin. Für hübsch gedruckte Ausgabe: yq -o json input.yaml | jq . — dies pipt das JSON durch jq für konsistentes Formatieren. Für ein Python-Einzeiler: python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml.
Werden meine YAML-Daten bei der Verwendung dieses Werkzeugs an einen Server gesendet?
Nein. Die gesamte Konvertierung findet vollständig in Ihrem Browser mit JavaScript statt. Ihre YAML-Daten werden niemals über das Netzwerk übertragen, niemals auf einem Server gespeichert und niemals protokolliert oder analysiert. Dies macht das Werkzeug sicher für die Verwendung mit Kubernetes-Secrets, Datenbankzugangsdaten, internen Helm-Werten, API-Schlüsseln in Konfigurationsdateien und anderen sensiblen Infrastrukturkonfigurationen. Sie können dies überprüfen, indem Sie die Netzwerk-Registerkarte Ihres Browsers öffnen — Sie werden sehen, dass das Einfügen von YAML keine Anfragen auslöst.
Gibt es eine Dateigrößenbeschränkung für YAML-Eingaben?
Es gibt keine harte Dateigrößenbeschränkung, aber große Eingaben (über 200 KB) schalten automatisch vom Live-Modus in den manuellen Modus um. Im manuellen Modus erscheint ein Konvertieren-Button und die Konvertierung läuft nur, wenn Sie darauf klicken — dies verhindert, dass der Haupt-Thread des Browsers bei jedem Tastendruck blockiert. Für sehr große YAML-Dateien (mehrere Megabyte) sollten Sie Befehlszeilenwerkzeuge wie yq für bessere Leistung verwenden.

Verwandte Werkzeuge

Alle Werkzeuge anzeigen →