UltKit

YAML in JSON umwandeln

Wandeln Sie YAML-Konfigurationen, OpenAPI-Spezifikationen und CI-Dateien in JSON um, das jeder Parser, jede API und jeder Schema-Validator lesen kann. Laden Sie .yaml- oder .yml-Dateien hoch und laden Sie eingerücktes JSON herunter.

Daten-Konverter

oder CSV, TSV, TXT …-Dateien hierher ziehen ·

Max. 95 MB pro Datei· Bis zu 20 Dateien· Gelöscht nach 30 Minuten

Ausgabe

Dateien werden auf unseren Servern verarbeitet und nach 30 Minuten gelöscht.

So verwenden Sie dieses Tool

  1. 1

    YAML-Dateien hochladen

    Fügen Sie .yaml- oder .yml-Dateien hinzu, bis zu 20 auf einmal und je 95 MB. Die Originalnamen bleiben erhalten; die JSON-Dateien erhalten dieselben Namen mit neuer Endung.

  2. 2

    Eingerückt oder kompakt wählen

    Formatiert ausgeben ist aktiviert und rückt das JSON zum Lesen und für Code-Reviews ein. Schalten Sie die Option unter Erweiterte Einstellungen aus, wenn Sie eine einzeilige Datei für den Request-Body brauchen.

  3. 3

    Umwandeln und verwenden

    Klicken Sie auf In JSON umwandeln, laden Sie die Datei herunter und übergeben Sie sie an die API, den Validator oder das Skript, das sie benötigt.

Warum Entwickler YAML in JSON umwandeln

YAML ist für Menschen geschrieben: Einrückung statt geschweifter Klammern, Kommentare, keine Anführungszeichen um die meisten Zeichenketten. Deshalb ist es das Format von Kubernetes-Manifesten, GitHub-Actions-Workflows, Docker-Compose-Dateien und OpenAPI-Spezifikationen, die Teams von Hand bearbeiten. JSON ist für Programme geschrieben. Jede Sprache hat einen JSON-Parser in der Standardbibliothek, Browser verarbeiten es nativ, und die meisten HTTP-APIs akzeptieren nichts anderes.

Die Umwandlung geschieht also an der Schnittstelle. Ein Platform Engineer leitet ein Manifest durch jq, das nur JSON liest. Ein Backend-Entwickler schickt eine OpenAPI-Spezifikation an einen Codegenerator, der JSON verlangt. Ein Tester lädt in YAML geschriebene Testdaten in eine JavaScript-Testsuite. In jedem Fall bleibt das YAML die maßgebliche Quelle und das JSON ein Build-Artefakt. Für ein ganzes Verzeichnis voller Feeds oder Exporte statt Konfigurationen verarbeitet XML in JSON das ältere Auszeichnungsformat auf dieselbe Weise.

Wie YAML und JSON zusammenwuchsen

YAML erstmals von Clark Evans vorgeschlagen
2001
YAML 1.2 machte JSON zu einer Teilmenge von YAML
2009
RFC 8259, der aktuelle JSON-Standard
2017
Revision YAML 1.2.2 veröffentlicht
2021

Was mit YAML-spezifischen Funktionen im JSON passiert

Mit einem Anker (&defaults) und seinen Aliasen (*defaults) kann YAML einen Block wiederverwenden. JSON kennt keine Verweise, daher wird jeder Alias durch eine vollständige Kopie des verankerten Blocks ersetzt.

  • Das JSON kann deutlich länger sein als das YAML
  • Merge-Schlüssel (<<: *defaults) werden auf dieselbe Weise aufgelöst
Eine kleine YAML-Konfiguration als formatiertes JSON
{
  "service": "billing",
  "replicas": 3,
  "ports": [8080, 9090],
  "env": {
    "LOG_LEVEL": "info",
    "REGION": "NO"
  }
}

Fakten zu den Formaten YAML und JSON

YAML

YAML

YAML („YAML Ain't Markup Language“) ist ein menschenfreundliches Datenformat, das erstmals 2001 veröffentlicht wurde. Es nutzt Einrückung statt Klammern, unterstützt Kommentare und ist eine Obermenge von JSON. Es wird häufig für Konfigurationen in Docker Compose, Kubernetes, GitHub Actions und vielen Anwendungen verwendet. Wegen der Abhängigkeit von Leerraum lässt es sich durch ein einziges falsches Leerzeichen zerstören, und manche Werte wie „no“ oder Datumsangaben können unerwartet interpretiert werden.

Komprimierung
–
Transparenz
–
Animation
–
Eingeführt
2001 · Clark Evans, Ingy döt Net, Oren Ben-Kiki
YAML-Konverter

JSON

JavaScript Object Notation

JSON ist ein schlankes Textformat für strukturierte Daten, in den frühen 2000er-Jahren von Douglas Crockford populär gemacht und als RFC 8259 und ECMA-404 standardisiert. Es stellt Objekte, Arrays, Zeichenketten, Zahlen, Booleans und null in einfacher, lesbarer Syntax dar. Es ist das Standardformat für Web-APIs, Konfigurationsdateien und den Datenaustausch zwischen Anwendungen in nahezu allen Programmiersprachen. Kommentare, Datumstypen und Schemas sind nicht eingebaut, und große verschachtelte Dateien sind ohne Viewer schwer lesbar.

Komprimierung
–
Transparenz
–
Animation
–
Eingeführt
2001 · Douglas Crockford
JSON-Konverter

YAML wird in JSON umgewandelt, wenn eine für Menschen geschriebene Konfiguration oder Spezifikation eine Maschine füttern soll: eine API-Anfrage, einen Schema-Validator oder ein Tool ohne YAML-Parser.

FAQ: YAML in JSON umwandeln

Warum YAML in JSON umwandeln, wenn beide dieselben Daten enthalten?

Weil viele Tools nur eines von beiden einlesen. JSON-Parser gehören zu jeder Programmiersprache und jedem Browser, YAML braucht dagegen eine zusätzliche Bibliothek. Request-Bodys für REST-APIs, JSON-Schema-Validatoren, jq und Dateien wie package.json oder die manifest.json einer Browser-Erweiterung erwarten alle JSON.

Was passiert mit meinen YAML-Kommentaren?

Sie fallen weg. RFC 8259 kennt in JSON keine Kommentarsyntax, daher können Zeilen mit # nicht übernommen werden. Behalten Sie die YAML-Datei als dokumentierte Quelle und betrachten Sie das JSON als erzeugte Kopie, die Sie jederzeit neu erstellen können.

Warum wurde aus NO oder off der Wert false?

Parser nach YAML 1.1 lesen yes, no, on und off als Boolesche Werte, sodass ein Ländercode wie NO für Norwegen zu false werden kann. YAML 1.2 beschränkt Boolesche Werte auf true und false, doch nicht jedes Tool hält sich daran. Setzen Sie solche Werte im YAML in Anführungszeichen, etwa "NO", dann bleiben sie im JSON Zeichenketten.

Kann ich eine in YAML geschriebene CloudFormation-Vorlage umwandeln?

AWS CloudFormation akzeptiert beide Formate, aber die Kurz-Tags wie !Ref und !GetAtt gibt es nur in YAML. JSON-Templates schreiben sie als vollständige Funktionen, {"Ref": "MyBucket"} oder {"Fn::GetAtt": [...]}. Schreiben Sie Kurz-Tags vor dem Umwandeln in die lange Form um, damit das JSON-Template gültig bleibt.

Wie wandle ich JSON zurück in YAML um?

Verwenden Sie JSON in YAML. Das ist die übliche Richtung, wenn eine API-Antwort oder eine generierte Datei zu einer lesbaren Konfigurationsdatei in einem Repository werden soll.