Zum Inhalt springen

YAML in JSON umwandeln

YAML in JSON umwandeln, ohne dass sich Werte oder Typen unbemerkt ändern.

Ausgabe
Optionen
Läuft im Browser – Ihre Daten werden nicht hochgeladen.

So funktioniert’s

  1. Fügen Sie Ihren YAML-Text in den Eingabeeditor ein.
  2. Wählen Sie unter „Ausgabe“ zwischen „Einrückung 2“, „Einrückung 4“ und „Minifizieren“.
  3. Wählen Sie bei Dateien mit mehreren YAML-Dokumenten unter „Mehrere Dokumente“ die Einstellung „JSON-Array“.

Beispiele

Gemeinsame Einstellungen in Docker Compose

Eingabe
x-standard: &standard
  restart: unless-stopped
  environment:
    TZ: Europe/Berlin
services:
  web:
    <<: *standard
    image: nginx:alpine
    ports:
      - "8080:80"
Ausgabe
{
  "x-standard": {
    "restart": "unless-stopped",
    "environment": {
      "TZ": "Europe/Berlin"
    }
  },
  "services": {
    "web": {
      "restart": "unless-stopped",
      "environment": {
        "TZ": "Europe/Berlin"
      },
      "image": "nginx:alpine",
      "ports": [
        "8080:80"
      ]
    }
  }
}

HTTP-Statuscodes in einer OpenAPI-Datei

Eingabe
openapi: 3.0.3
info:
  title: Lagerbestand
  version: 1.0.0
paths:
  /artikel:
    get:
      responses:
        200:
          description: Artikelliste
        404:
          description: Nicht gefunden
Ausgabe
{
    "openapi": "3.0.3",
    "info": {
        "title": "Lagerbestand",
        "version": "1.0.0"
    },
    "paths": {
        "/artikel": {
            "get": {
                "responses": {
                    "200": {
                        "description": "Artikelliste"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    }
                }
            }
        }
    }
}

Zwei Kubernetes-Ressourcen in einer Datei

Eingabe
apiVersion: v1
kind: Namespace
metadata:
  name: warenwirtschaft
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: einstellungen
  namespace: warenwirtschaft
data:
  SPRACHE: de_DE
  ZEITZONE: Europe/Berlin
Ausgabe
[{"apiVersion":"v1","kind":"Namespace","metadata":{"name":"warenwirtschaft"}},{"apiVersion":"v1","kind":"ConfigMap","metadata":{"name":"einstellungen","namespace":"warenwirtschaft"},"data":{"SPRACHE":"de_DE","ZEITZONE":"Europe/Berlin"}}]

Wie YAML-Typen zu JSON werden

YAMLJSONHinweis
name: Alice, "02134"StringZahlen in Anführungszeichen bleiben Strings.
30, 1.10, 0x1F, 12345678901234567890ZahlGenau wie im YAML geschrieben; Hex- und Oktalzahlen werden dezimal.
true, FalseBooleanyes, no, on bleiben Strings (YAML 1.2).
null, ~, leerer Wertnull
2001-12-14, 12:30:00StringKeine versteckte Umwandlung in Timestamps.
Listen, Maps, Anker, <<-Merge-KeysArray, ObjektAliase werden aufgelöst; die Reihenfolge der Schlüssel bleibt erhalten.
.inf, .nan, !!binary, !Ref, Liste als Schlüssel—Fehler mit Pfad und Zeile, nie eine stille Änderung.

Häufige Fragen

Werden yes, no und on in Boolean-Werte umgewandelt?

Nach den standardmäßig verwendeten YAML-1.2-Regeln bleiben yes, no, on und off Strings. Deklariert ein Dokument ausdrücklich %YAML 1.1, gelten dafür die YAML-1.1-Regeln; dabei wird etwa yes zu true. Das Tool zeigt dazu einen Hinweis.

Bleiben große Zahlen und Nachkommastellen erhalten?

Zahlen wie 12345678901234567890, 1.10, 1e3 und -0 werden unverändert in den JSON-Text geschrieben. Hexadezimale und oktale Zahlen werden als Dezimalzahlen ausgegeben, etwa 0x1F als 31.

Warum lässt sich mein YAML nicht in JSON umwandeln?

Doppelte Schlüssel, benutzerdefinierte Tags wie !Ref sowie .inf und .nan führen zu einem Fehler statt zu einer stillen Datenänderung. Auch rekursive Aliase und Schlüssel, die nach der Umwandlung kollidieren, werden abgelehnt. Die Fehlermeldung nennt Zeile und Spalte.

Wird mein YAML an einen Server gesendet?

Die Umwandlung läuft im Browser; der Tool-Code sendet weder YAML noch JSON an einen Server. Die Eingabe wird nicht gespeichert, nur die Optionseinstellungen bleiben in localStorage erhalten. Beim Wechsel zu einem anderen Tool werden die Daten vorübergehend über sessionStorage übergeben und nach dem Einlesen entfernt.

Wie groß darf eine YAML-Datei sein?

Dateien und eingefügter YAML-Text dürfen höchstens 10 MB groß sein. Dateien müssen UTF-8-kodiert sein; Binärdateien werden abgelehnt. Zusätzlich gelten Grenzen von 1.000 Verschachtelungsebenen und 1.000.000 Werten nach der Auflösung von Aliasen.