Omvormen naar YAML

Zet CSV, INI, JSON, NDJSON, TOML, TSV of XML om naar YAML. Plak de bron of open een lokaal bestand en stel daarna de parser en inspringing in. De omzetting gebeurt in je browser. De invoer wordt niet geüpload.

Hoe het omzetten werkt

Link

NDJSON wordt een YAML-reeks. Iedere niet-lege regel is één item en mag elke geldige JSON-waarde bevatten. Objecten worden mappings, arrays worden geneste reeksen en eenvoudige waarden behouden hun JSON-datatype. Bij ongeldige JSON stopt de omzetting en noemt de foutmelding de mislukte regel.

CSV- en TSV-tabellen worden reeksen met mappings als de eerste rij de koppen bevat. Punten in een kop maken geneste mappings. Zo wordt hello.there.general een pad met drie sleutels. Kolommen met hetzelfde pad worden in één mapping samengevoegd. Een backslash voor een punt geldt ook als scheidingsteken. Zonder koprij blijven de waarden op positie staan. Voor CSV kun je ook het scheidingsteken kiezen. Met typeherkenning worden herkenbare getallen, booleaanse waarden en nullwaarden omgezet in plaats van als tekst bewaard.

JSON-objecten, arrays en scalaire waarden worden rechtstreeks YAML-mappings, reeksen en waarden. TOML-tabellen en arrays van tabellen worden mappings en reeksen. TOML-commentaar en opmaak blijven niet behouden. INI-secties worden geneste mappings. Sleutels buiten een sectie komen onder global en alle INI-waarden blijven tekenreeksen.

XML-elementen worden mappingsleutels. Herhaalde elementen worden reeksen en tekst wordt een tekenreeks. De attributensleutel, standaard @attributes, bewaart XML-attributen. Commentaar, verwerkingsinstructies, naamruimten en het verschil tussen CDATA en gewone tekst blijven niet behouden.

Uitvoer instellen

Link

Kies één tot acht spaties per inspringingsniveau. De omzetter schrijft mappings en reeksen in blokstijl. Iedere tekenreeks komt tussen dubbele aanhalingstekens en krijgt waar nodig escapes. Getallen, booleaanse waarden en nullwaarden behouden hun type als de bronparser dat kan herkennen. Ongeldige invoer geeft een foutmelding in plaats van onvolledige YAML.

Wat YAML kan vastleggen

Link

YAML is een plattetekstformaat voor gestructureerde gegevens. Een mapping koppelt sleutels aan waarden, een reeks bewaart een geordende lijst en een scalaire waarde bevat bijvoorbeeld tekst, een getal, een booleaanse waarde of null. Inspringing geeft aan hoe deze waarden zijn genest.

applicatie:
  naam: "Voorbeeld"
  actief: true
  poorten:
    - 80
    - 443

YAML ondersteunt ook commentaar, ankers, aliassen, tags en verschillende notaties voor tekenreeksen en verzamelingen. Die mogelijkheden beschrijven niet alleen de gegevens, maar ook hoe iemand het YAML-document heeft geschreven.

Tekenreeksen en datatypen

Link

Een tekenreeks zonder aanhalingstekens houdt handgeschreven YAML compact, maar maakt het datatype soms minder duidelijk. Aanhalingstekens nemen die dubbelzinnigheid weg. Enkele aanhalingstekens behandelen vrijwel alles letterlijk. Dubbele aanhalingstekens ondersteunen escapes zoals \n en \t. Een blok met | behoudt regeleinden, terwijl > de meeste regeleinden omzet in spaties.

Een parser leidt getallen, booleaanse waarden en nullwaarden af uit hun schrijfwijze en het schema dat hij gebruikt. YAML-versies en parserbibliotheken zijn het niet altijd eens over iedere schrijfwijze. Zet datums, waarden met voorloopnullen en andere bedoelde tekst tussen aanhalingstekens om een onbedoeld datatype te voorkomen. Deze omzetter zet alle tekenreeksen tussen aanhalingstekens, zodat een andere parser ze opnieuw als tekenreeks leest.

Ankers, aliassen en documentstructuur

Link

Een anker benoemt een onderdeel met & en een alias verwijst er met * naar terug. Tags met ! kunnen een datatype aangeven of een toepassing vragen een bepaald object te maken. YAML kan ook richtlijnen en meerdere documenten in één gegevensstroom bevatten, gescheiden met ---.

Deze mogelijkheden zijn nuttig in handmatig beheerde configuraties, maar hebben geen rechtstreeks equivalent in JSON, CSV, TSV of INI. De omzetter schrijft de verwerkte gegevens als één document. Hij probeert geen keuzes van de oorspronkelijke auteur te herstellen als die niet meer in de geparseerde waarde zitten.

Waar YAML wordt gebruikt

Link

YAML komt veel voor in applicatie-instellingen, build-pipelines, deployment-manifesten en infrastructuurconfiguratie. De bloknotatie houdt geneste mappings leesbaar, maar inspringing hoort bij de grammatica. Tabs mogen geen structuur inspringen en één verkeerd geplaatste spatie kan bepalen bij welke mapping of reeks een waarde hoort. Schemavalidatie staat los van het parsen, net als bij JSON.

Wat verloren kan gaan

Link

De omzetter schrijft één YAML-document zonder commentaar, ankers, aliassen, eigen tags, richtlijnen of documentmarkeringen. Hij bewaart niet of een tekenreeks in de bron aanhalingstekens of een bloknotatie gebruikte. Ook XML-naamruimten, gemengde inhoud, commentaar en verwerkingsinstructies zijn niet betrouwbaar te reconstrueren.

CSV en TSV bieden weinig type-informatie als typeherkenning uitstaat. INI-waarden blijven altijd tekenreeksen. Controleer datums, grote getallen, waarden met voorloopnullen en andere tekst die een YAML-parser anders kan interpreteren.

De omzetter houdt de volledige invoer en uitvoer in het geheugen. Hij is geschikt voor gewone configuratiebestanden en datasets, niet voor zeer grote exports.

Bestanden, privacy en opgeslagen werk

Link

Kies een lokaal bestand. Een herkende extensie selecteert automatisch het juiste invoertype. De browser leest het bestand lokaal en uploadt het niet.

Het gekozen formaat, de invoer per formaat, parserinstellingen en YAML-inspringing staan in localStorage. Wisselen van formaat overschrijft geen tekst van een ander formaat. Wis de velden of sitegegevens na verwerking van gevoelige informatie op een gedeeld apparaat.

Gerelateerde hulpmiddelen

Link

Widget gemaakt met staark