JSON-till-YAML-omvandlare
Omvandla data från JSON till YAML direkt medan du skriver, i webbläsaren.
Inmatning
Utdata
Readme
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: falseden här CSV-datan, med en rad per användare:
id,name,admin
1,Ann,true
2,Bo,falseoch den här TOON-datan:
users[2]{id,name,admin}:
1,Ann,true
2,Bo,falseSå 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"]}kolumnernaname,address.cityochtags. 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
trueochfalsetill booleska värden och tal som skrivits utan omskrivning, till exempel42eller3.5, till tal. Värden som007,1.50eller1e3fö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 namnetvalue. 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 typenkey[] = valueoch 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å enapplication.properties-fil konverteras till samma struktur som enapplication.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,yeseller 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}blir81 A1 61 01. Inmatningen kan innehålla blanksteg, kommatecken och0xframfö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.