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, hier 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. Plak of typ uw gegevens; het resultaat verschijnt terwijl u typt in een code-editor met syntaxiskleuring, klaar om te kopiëren. Met de wisselknop draait u de conversie om en wordt het resultaat 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.

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: false

deze CSV, met één rij per gebruiker:

id,name,admin
1,Ann,true
2,Bo,false

en deze TOON:

users[2]{id,name,admin}:
  1,Ann,true
  2,Bo,false

Hoe 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 kolommen name, address.city en tags. 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 true en false om in booleans en getallen die zonder extra notatie zijn geschreven, zoals 42 of 3.5, in getallen. Waarden zoals 007, 1.50 of 1e3 blijven 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 items en een enkele waarde onder value. 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 type key[] = value en 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 een application.properties-bestand wordt omgezet naar de indeling van een application.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, yes of 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, dus de tools lezen en schrijven het als hexadecimale bytes: {"a": 1} is 81 A1 61 01. De invoer mag spaties en komma's bevatten, en mag elke byte vooraf laten gaan door 0x. 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.