Vad är dessa dataformat?

Program lagrar och utbyter strukturerade data, till exempel inställningar, poster och listor, i textformat som vart och ett skriver data på sitt eget sätt. En konverterare är praktisk när ett program ger dig data i ett format som ett annat program inte kan läsa, eller när ett format är enklare att läsa eller redigera för uppgiften.

Format Så här skrivs data Där du hittar det
JSON Objekt inom klammerparenteser, listor inom hakparenteser, text inom dubbla citationstecken Webbtjänsters API:er och appinställningar
YAML Indragna rader med key: value, listelement som börjar med - Docker Compose, Kubernetes och CI-pipelinefiler
XML Element i taggar, som kan ha attribut Dokument, RSS-flöden och SOAP-webbtjänster
TOML Rader med key = value under rubriker som [table] Konfigurationsfiler som Cargo.toml och pyproject.toml
TOON Indragna rader, med listor av poster som rader under sina fält Strukturerade data som skickas till AI-språkmodeller
CSV En rubrikrad följd av en rad per post, med värden åtskilda av kommatecken Kalkylblad och databexporter
TSV Som CSV, men med tabbar mellan värdena Celler som kopierats från ett kalkylblad
MessagePack Binärdata, som här visas som hexadecimala byte Kompakta meddelanden mellan program
JSON5 JSON som också tillåter kommentarer, enkla citationstecken och nycklar utan citationstecken Konfigurationsfiler som skrivits för hand
JSONL Ett JSON-värde per rad, även kallat JSON Lines eller NDJSON Loggar och datamängder
INI Rader med key = value under rubriker som [section] Programinställningsfiler, till exempel php.ini
Properties Rader med key = value och nycklar med punkter Java-appar, till exempel Spring Boots application.properties-filer

Verktygsbeskrivning

Det här verktyget konverterar data mellan följande 12 format: JSON, YAML, XML, TOML, TOON, CSV, TSV, MessagePack, JSON5, JSONL, INI och Java properties. Alla datformatkonverterare här fungerar på samma sätt, från den allmänna formatkonverteraren för data till dem som hanterar ett enda formatpar, som JSON till YAML, CSV till JSON eller XML till JSON: verktyget startar med formaten i sitt namn, och menyerna för källa och mål låter dig välja vilka andra format som helst. Klistra in eller skriv dina data, så visas resultatet medan du skriver i en kodredigerare med syntaxmarkering, redo att kopieras. Växlingsknappen vänder på konverteringen och gör resultatet till den nya inmatningen.

Om inmatningen inte är giltig i källformatet anger felmeddelandet vad som är fel, vanligtvis med rad och kolumn för problemet.

Dina data konverteras i webbläsaren och laddas aldrig upp.

Exempel

Den här JSON-datan:

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

blir den här YAML-datan:

users:
  - id: 1
    name: Ann
    admin: true
  - id: 2
    name: Bo
    admin: false

den här CSV-datan, med en rad per användare:

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

och den här TOON-datan:

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

Så här motsvarar formaten varandra

Format kan innehålla olika typer av data, så vissa konverteringar följer dessa regler:

  • CSV och TSV innehåller en tabell. Den första raden anger kolumnnamnen, och varje annan rad blir ett objekt. Nästlade objekt blir kolumner med namn som motsvarar deras sökväg, och listor blir JSON-text i sina celler. Därför blir {"name": "Ann", "address": {"city": "Oslo"}, "tags": ["a", "b"]} kolumnerna name, address.city och tags. Vid konvertering tillbaka blir dessa kolumner åter nästlade objekt och listor. Om data är ett objekt som innehåller en enda lista, till exempel {"users": [...]}, blir raderna elementen i listan, och en lista med listor blir rader utan rubrik.
  • Textvärden: CSV, TSV, XML, INI och properties innehåller bara text, så konverterarna omvandlar true och false till booleska värden och tal som skrivits utan omskrivning, till exempel 42 eller 3.5, till tal. Värden som 007, 1.50 eller 1e3 förblir text, så postnummer och versionsnummer behåller sitt exakta format.
  • XML-attribut blir nycklar som börjar med @, och texten i ett element som har attribut blir #text: <price currency="USD">44.95</price> blir {"@currency": "USD", "#text": 44.95}. Upprepade element blir en lista. Vid konvertering till XML blir nycklar som börjar med @ åter attribut. Ett objekt med en enda nyckel vars värde inte är en lista blir rotelementet. Övriga data placeras i ett <root>-element, och varje element i en lista på toppnivån placeras i ett <item>-element. Tecken som inte får förekomma i XML-namn, till exempel blanksteg, blir _.
  • TOML, INI och properties kan bara innehålla namngivna värden på toppnivån, så data som är en lista skrivs under namnet items, och ett enskilt värde under namnet value. TOML saknar null-värde, så null-värden utelämnas.
  • INI skriver nästlade objekt som avsnitt, till exempel [server.ssl], listor med värden som rader av typen key[] = value och listor med objekt som avsnitt namngivna efter sin position, till exempel [users.0].
  • Properties sammanfogar nästlade namn med punkter i nycklar och numrerar listelement inom hakparenteser, till exempel app.hosts[0], på samma sätt som Spring Boot skriver dem. Vid konvertering till YAML eller JSON blir dessa nycklar nästlade objekt och listor, så en application.properties-fil konverteras till samma struktur som en application.yml-fil. Tecken utanför Latin-1 skrivs som \u-escape-sekvenser.
  • YAML-resultat sätter citationstecken runt text som YAML 1.1-läsare annars skulle tolka som något annat, till exempel on, yes eller ett datum, så att YAML 1.1- och YAML 1.2-läsare får samma data. En YAML-fil med flera dokument åtskilda av --- blir en lista med dessa dokument, och <<-sammanfogningsnycklar fylls i.
  • MessagePack är binärt, så verktygen läser och skriver det som hexadecimala byte: {"a": 1} blir 81 A1 61 01. Inmatningen kan innehålla blanksteg, kommatecken och 0x framför varje byte. Flera meddelanden efter varandra blir en lista.
  • JSONL-resultat har varje listelement på en egen rad.
  • Heltal som är för stora för JavaScript-tal, till exempel 64-bitars-ID:n, behåller alla sina siffror.
  • TOML-datum och -tider samt MessagePack-tidsstämplar blir text, till exempel 1979-05-27T07:32:00Z.

Tips

  • Om du vill konvertera celler från ett kalkylblad kopierar du dem och klistrar in dem som TSV: kalkylbladsappar kopierar celler som tabbavgränsad text.
  • CSV och TSV passar för data som består av en lista med likartade poster. Djupt nästlade data är enklare att läsa som YAML, TOML eller TOON.
  • Kommentarer i YAML-, XML-, TOML-, JSON5-, INI- och properties-filer bevaras inte, eftersom konverterarna bara för över data.