JSON naar YAML-converter
Zet data direct tijdens het typen om van JSON naar YAML, gewoon in je browser.
Invoer
Uitvoer
Readme
Wat zijn deze gegevensindelingen?
Programma's slaan gestructureerde gegevens op en wisselen ze uit, zoals instellingen, records en lijsten, in tekstindelingen die de gegevens elk op hun eigen manier weergeven. Een converter is handig wanneer een programma gegevens aanlevert in een indeling die een ander programma niet kan lezen, of wanneer een indeling voor de betreffende taak makkelijker te lezen of te bewerken is.
| Indeling | Hoe gegevens worden weergegeven | Waar u deze tegenkomt |
|---|---|---|
| JSON | Objecten tussen accolades, lijsten tussen vierkante haken, tekst tussen dubbele aanhalingstekens | Web-API's en app-instellingen |
| YAML | Ingesprongen regels met key: value, lijstitems beginnen met - |
Docker Compose, Kubernetes en CI-pijplijnbestanden |
| XML | Elementen in tags, die attributen kunnen hebben | Documenten, RSS-feeds en SOAP-webservices |
| TOML | Regels met key = value onder koppen als [table] |
Configuratiebestanden zoals Cargo.toml en pyproject.toml |
| TOON | Ingesprongen regels, met lijsten van records als rijen onder hun velden | Gestructureerde gegevens die naar AI-taalmodellen worden verzonden |
| CSV | Een kopregel, gevolgd door één regel per record, met waarden gescheiden door komma's | Spreadsheets en database-exporten |
| TSV | Net als CSV, maar met tabs tussen de waarden | Cellen die vanuit een spreadsheet zijn gekopieerd |
| MessagePack | Binaire gegevens, op het tabblad Tekst weergegeven als hexadecimale bytes | Compacte berichten tussen programma's |
| JSON5 | JSON, dat ook opmerkingen, enkele aanhalingstekens en sleutels zonder aanhalingstekens toestaat | Handgeschreven configuratiebestanden |
| JSONL | Eén JSON-waarde per regel, ook wel JSON Lines of NDJSON genoemd | Logboeken en datasets |
| INI | Regels met key = value onder koppen als [section] |
Instellingenbestanden van programma's, zoals php.ini |
| Properties | Regels met key = value en sleutels met punten |
Java-apps, zoals application.properties-bestanden van Spring Boot |
Beschrijving van de tool
Deze tool zet gegevens om tussen deze 12 indelingen: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI en Java-properties. Elke converter voor gegevensindelingen werkt hier op dezelfde manier, van de algemene converter voor gegevensindelingen tot die voor één paar, zoals JSON naar YAML, CSV naar JSON of XML naar JSON: de tool begint met de indelingen die in de naam staan, en met de menu's Bron en Doel kunt u elke andere indeling kiezen.
De converters nemen gegevens aan als tekst die u plakt of typt, of als bestanden, en geven tekst of bestanden terug. Met de tabbladen Bestand en Tekst bovenaan de bronkant en de doelkant kiest u welke van de twee. Beide kanten beginnen op Tekst.
- Tekst als invoer: plak of typ uw gegevens; ze worden omgezet terwijl u typt.
- Bestand als invoer: kies of sleep één of meer bestanden. De knop Blader door bestanden toont alleen bestanden in de bronindeling, maar gesleepte bestanden kunnen in elk van de 12 indelingen zijn, en elk bestand wordt omgezet vanuit de indeling die de extensie aangeeft, dus een .yaml-bestand wordt als YAML omgezet, zelfs in de converter JSON naar XML. Een gesleept bestand met een andere extensie, zoals .txt, wordt omgezet vanuit de bronindeling. Bestanden in UTF-16 of in een oudere codering, zoals Windows-1252, worden ook gelezen.
- Tekst als uitvoer: het resultaat verschijnt in een code-editor met syntaxiskleuring, klaar om te kopiëren. Als er meerdere bestanden worden omgezet, kiest u met het menu Bestand erboven welk bestand wordt getoond.
- Bestand als uitvoer: de omgezette bestanden verschijnen in een raster, elk met een eigen knop Downloaden, en behouden hun bestandsnaam met de nieuwe extensie. De knop Alles downloaden slaat alle omgezette bestanden op in één ZIP-bestand, of een enkel omgezet bestand zoals het is. Geplakte gegevens leveren één bestand op met de naam converted, zoals converted.yaml. De omgezette bestanden zijn UTF-8-tekst, behalve MessagePack-bestanden, die binair zijn.
Met de wisselknop draait u de conversie om: de doelindeling wordt de bron, de twee kanten wisselen van tabblad en het resultaat wordt de nieuwe invoer.
Als de invoer niet geldig is in de bronindeling, geeft het foutbericht aan wat er mis is, meestal met de regel en kolom waar het probleem zich voordoet. Bij bestanden noemt het foutbericht de bestanden die mislukt zijn, en het tabblad Tekst aan de doelkant geeft de details van het bestand dat het toont.
Uw gegevens worden in uw browser omgezet en nooit geüpload.
Voorbeeld
Deze JSON:
{
"users": [
{ "id": 1, "name": "Ann", "admin": true },
{ "id": 2, "name": "Bo", "admin": false }
]
}wordt deze YAML:
users:
- id: 1
name: Ann
admin: true
- id: 2
name: Bo
admin: falsedeze CSV, met één rij per gebruiker:
id,name,admin
1,Ann,true
2,Bo,falseen deze TOON:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseHoe de indelingen op elkaar worden afgestemd
Indelingen bevatten niet allemaal dezelfde soorten gegevens, dus voor sommige conversies gelden de volgende regels:
- CSV en TSV bevatten een tabel. De eerste rij bevat de kolomnamen en elke volgende rij wordt een object. Geneste objecten worden kolommen met namen op basis van hun pad, en lijsten worden JSON-tekst in hun cel. Zo wordt
{"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]}omgezet naar de kolommenname,address.cityentags. Bij het terug omzetten worden die kolommen weer geneste objecten en lijsten. Als de gegevens een object zijn met één lijst, zoals{"users": [...]}, vormen de items in die lijst de rijen. Een lijst met lijsten wordt omgezet naar rijen zonder kopregel. - Tekstwaarden: CSV, TSV, XML, INI en properties bevatten alleen tekst, dus de converters zetten
trueenfalseom in booleans en getallen die zonder extra notatie zijn geschreven, zoals42of3.5, in getallen. Waarden zoals007,1.50of1e3blijven tekst, zodat postcodes en versienummers hun exacte vorm behouden. - XML-attributen worden sleutels die beginnen met
@, en de tekst van een element met attributen wordt#text:<price currency="USD">44.95</price>wordt{"@currency": "USD", "#text": 44.95}. Elementen die meerdere keren voorkomen, worden een lijst. Bij conversie naar XML worden sleutels die beginnen met@weer attributen. Een object met één sleutel waarvan de waarde geen lijst is, wordt het hoofdelement. Andere gegevens komen in een element<root>, waarbij elk item van een lijst op het hoogste niveau in een element<item>wordt geplaatst. Tekens die niet in XML-namen mogen voorkomen, zoals spaties, worden_. - TOML, INI en properties kunnen op het hoogste niveau alleen benoemde waarden bevatten. Daarom worden lijstgegevens geschreven onder de naam
itemsen een enkele waarde ondervalue. TOML heeft geen null-waarde, dus null-waarden worden weggelaten. - INI schrijft geneste objecten als secties, zoals
[server.ssl], lijsten met waarden als regels van het typekey[] = valueen lijsten met objecten als secties met een naam op basis van hun positie, zoals[users.0]. - Properties-sleutels voegen geneste namen samen met punten en nummeren lijstitems tussen vierkante haken, zoals
app.hosts[0], volgens de manier waarop Spring Boot ze schrijft. Bij conversie naar YAML of JSON worden die sleutels geneste objecten en lijsten, zodat eenapplication.properties-bestand wordt omgezet naar de indeling van eenapplication.yml-bestand. Tekens buiten Latin-1 worden geschreven als\u-escapes. - YAML-resultaten zetten aanhalingstekens rond tekst die YAML 1.1-lezers als iets anders zouden interpreteren, zoals
on,yesof een datum, zodat YAML 1.1- en YAML 1.2-lezers dezelfde gegevens krijgen. Een YAML-bestand met meerdere documenten, gescheiden door---, wordt een lijst met die documenten, en<<-samenvoegsleutels worden ingevuld. - MessagePack is binair. Als tekst lezen en schrijven de tools het als hexadecimale bytes:
{"a": 1}is81 A1 61 01, en de invoer mag spaties, komma's en0xvoor elke byte bevatten. MessagePack-bestanden, gekozen of opgeslagen op het tabblad Bestand, bevatten de bytes zelf, dus een omgezet .msgpack-bestand is binair. Meerdere berichten achter elkaar worden een lijst. - JSONL-resultaten plaatsen elk item van de lijst op een eigen regel.
- Gehele getallen die te groot zijn voor JavaScript-getallen, zoals ID's van 64 bits, behouden al hun cijfers.
- TOML-datums en -tijden, en MessagePack-tijdstempels, worden tekst zoals
1979-05-27T07:32:00Z.
Tips
- Als u cellen uit een spreadsheet wilt omzetten, kopieert u ze en plakt u ze als TSV: spreadsheet-apps kopiëren cellen als tekst met tabs als scheidingstekens.
- CSV en TSV zijn geschikt voor gegevens die bestaan uit een lijst met vergelijkbare records. Diep geneste gegevens zijn beter leesbaar als YAML, TOML of TOON.
- Opmerkingen in YAML-, XML-, TOML-, JSON5-, INI- en properties-bestanden worden niet behouden, omdat de converters alleen de gegevens overnemen.