← Alla verktyg

JSON till XML-omvandlare

Konvertera JSON till XML och XML till JSON direkt i webbläsaren. Endast lokalt och privat, med noter om attribut, arrayer, namnrymder och fallgropar.

JSON till XML och tillbaka: en praktisk konverterare för två datavärldar

De flesta utvecklare arbetar med både XML och JSON oavsett om de vill eller inte. Moderna webb-API:er talar nästan uteslutande JSON, men i samma stund du rör vid en bank, ett försäkringsbolag, en myndighetsslutpunkt, ett företags-ERP eller en gammal SOAP-tjänst dyker XML upp igen. Konverteraren JSON till XML på den här sidan gör om JSON till XML och XML tillbaka till JSON direkt i din webbläsare, så att du kan röra dig mellan dessa två format utan att kopiera känsliga nyttolaster till en fjärrtjänst.

Lysande nästlade JSON-klamrar som omvandlas till ett träd av inramade XML-taggar mot en mörkt indigofärgad bakgrund
JSON-objekt och XML-taggträd beskriver samma data i olika former.

Vad XML och JSON egentligen är

XML (Extensible Markup Language) är ett uppmärkningsformat byggt kring nästlade taggar, attribut och namnrymder. Det designades för dokument och strukturerat datautbyte, och det bär med sig mycket maskineri: scheman (XSD), namnrymder, bearbetningsinstruktioner, kommentarer, CDATA-sektioner och en formell deklaration högst upp. Den rikedomen är varför XML fortfarande dominerar i äldre och företagsomfattande system. Du hittar det i SOAP-webbtjänster, RSS- och Atom-flöden, konfigurationsfiler (Spring, Maven, .NET-appkonfigurationer) och finansiella meddelandestandarder som SWIFT och ISO 20022, där banker och försäkringsbolag fortsätter att utbyta XML varje dag.

JSON (JavaScript Object Notation) är betydligt enklare: objekt med nyckel/värde-par, arrayer, strängar, tal, booleaner och null. Det mappar nästan en-till-en mot datastrukturerna i nästan alla programmeringsspråk, vilket är precis varför det tog över moderna webb-API:er, REST-slutpunkter, mobilappar och konfigurationsfiler som package.json. JSON är typiskt 30 till 50 procent mindre än motsvarande XML och tolkas märkbart snabbare, delvis eftersom det slopar de avslutande taggarna och det attributmaskineri som gör XML omständligt.

De viktigaste skillnaderna för konvertering

De två formaten överlappar tillräckligt för att mappa mot varandra, men inte rent. Några strukturella skillnader orsakar nästan all friktion:

  • Attribut kontra underordnade noder. XML skiljer mellan <user id="1"> (ett attribut) och <user><id>1</id></user> (ett underordnat element). JSON har inget sådant begrepp, så konverterare hittar på ett. Enligt konvention viks attribut in i en nyckel som @attributes eller prefixas med @, medan elementtext hamnar i en nyckel som #text.
  • Arrayer. JSON har native arrayer. XML har det inte. En lista i XML är bara samma tagg upprepad, som tre <item>-element i rad. Konverterare måste räkna ut när upprepade syskon ska kollapsa till en JSON-array, och när ett enda element ska förbli ett vanligt objekt.
  • Namnrymder. XML använder namnrymder (xmlns:soap-prefix) för att undvika namnkollisioner mellan scheman. JSON har inget motsvarande, så prefix överlever antingen som bokstavliga tecken i nycklar eller strippas bort.
  • Omständlighet och metadata. XML kan bifoga metadata till en nod genom attribut; JSON uttrycker allt som nycklar och värden. Det gör JSON mer kompakt och lättare att läsa, medan XML behåller valideringskraft genom XSD-scheman.

Konverteringsfällor att hålla utkik efter

Att göra en rundresa JSON till XML till JSON och förvänta sig ett identiskt resultat är det klassiska misstaget. Konverteringen är förlustbehäftad i båda riktningarna om du inte kontrollerar reglerna. Tänk på detta:

  • Attribut blir förvanskade. När du konverterar JSON till XML behöver verktyget en regel för vilka nycklar som blir attribut kontra element. När du går åt andra hållet måste attributen hamna någonstans, och det "någonstans" (@-prefix, @attributes-block) skiljer sig mellan bibliotek. Om en nedströmstolk förväntar sig en annan konvention ser datan fel ut även om ingenting gick förlorat.
  • Enskilt element kontra array. Ett XML-flöde med ett <item> ger ett JSON-objekt; samma flöde med två poster ger en JSON-array. Kod som förutsätter en array går sönder på fallet med bara ett objekt. Det är en vanlig källa till buggar i RSS- och SOAP-tolkning.
  • Namnrymder läcker eller försvinner. Beroende på verktyget kan soap:Body bli en nyckel bokstavligen kallad soap:Body, eller så kan prefixet strippas bort helt, vilket ändrar dokumentets betydelse.
  • Blandat innehåll och typer. XML behandlar allt som text, så ett värde som true eller 42 kan förbli en sträng efter konvertering till JSON, medan den motsatta riktningen inte har någon native plats för kommentarer eller CDATA.
Två strukturerade dataträd förenade av abstrakta uppmärkningsnoder i cyan och guld
Att mappa mellan format innebär att avgöra hur attribut, arrayer och namnrymder översätts.

Varför enbart lokal konvertering spelar roll

JSON- och XML-nyttolaster är ofta det känsligaste en utvecklare hanterar: API-svar med tokens, SOAP-meddelanden med kontonummer, konfigurationsfiler med autentiseringsuppgifter. En konverterare som körs i din webbläsare laddar aldrig upp något av det. Tolkningen och serialiseringen sker på din maskin, ingenting skickas till en server, och du kan använda verktyget offline när sidan väl har laddats. För felsökning av produktionsdata eller allt under ett regelverk är det skillnaden mellan en säker snabbkontroll och en oavsiktlig dataläcka.

Om du behöver städa upp resultatet efteråt, kombinera det här med våra andra datakonverterare, eller städa din utdata med JSON-formateraren innan du lämnar den till nästa verktyg i din pipeline.

Vanliga frågor

Laddar konverteraren upp min JSON eller XML någonstans?

Nej. Både JSON till XML- och XML till JSON-konvertering körs helt i din webbläsare. Din data lämnar aldrig din enhet och verktyget fungerar offline efter att sidan har laddats.

Hur hanteras XML-attribut vid konvertering till JSON?

XML-attribut placeras i en dedikerad nyckel, vanligtvis prefixad med ett snabel-a eller grupperad under ett attributblock, eftersom JSON saknar native attributbegrepp. Elementets textinnehåll lagras separat så att båda överlever konverteringen.

Varför blev mitt enda XML-element ett objekt istället för en array?

XML har inga native arrayer, så en lista är bara en upprepad tagg. När bara ett element finns kan konverterare inte skilja det från ett vanligt objekt, så det blir ett objekt. Två eller fler syskon med samma taggnamn kollapsar till en JSON-array.

Vad händer med XML-namnrymder som soap eller xmlns?

JSON har ingen motsvarighet till XML-namnrymder. Beroende på konverteringen behålls prefixet som bokstavlig text i nyckeln eller strippas bort. Kontrollera utdata om din nedströmskonsument förlitar sig på namnrymdsprefix.

Kan jag konvertera JSON tillbaka till XML och få originaldokumentet?

Inte alltid exakt. Konvertering är förlustbehäftad i båda riktningarna eftersom XML-funktioner som kommentarer, CDATA och skillnaden mellan attribut och element saknar en ren JSON-motsvarighet. Rundresor fungerar bäst när du styr namngivningsreglerna på båda sidor.

Var används XML fortfarande jämfört med JSON?

XML lever i äldre och företagsomfattande system: SOAP-webbtjänster, RSS- och Atom-flöden, konfigurationsfiler och finansiella meddelanden som SWIFT och ISO 20022. JSON dominerar moderna webb-API:er, REST-slutpunkter och mobilappar.