Hva er dette verktøyet?
XML og JSON er begge trestrukturerte dataformater, men de dukker opp på forskjellige steder: gamle bedrifts-API-er, SOAP-tjenester, RSS/Atom-feeder og mange konfigurasjonsformater snakker fortsatt XML, mens moderne REST-API-er og JavaScript-kode nesten utelukkende snakker JSON. Dette verktøyet oversetter mellom de to slik at du slipper å skrive begge for hånd når du skal integrere gamle og nye systemer.
Konverteringen er bygget direkte på nettleserens DOMParser-API for å lese XML, og følger strukturen definert i W3C XML 1.0-spesifikasjonen for å produsere den — så XML-en som genereres er velformet, og XML-en som godtas tolkes på samme måte som en nettleser eller et standardkompatibelt XML-bibliotek ville gjort.
Fordi XML har begreper JSON ikke har (attributter, blandet tekst/element-innhold, ett obligatorisk rotelement) og JSON har begreper XML ikke har (native arrayer, boolske verdier, tall), bruker verktøyet en dokumentert, mye brukt konvensjon: et XML-attributt `name="value"` blir JSON-nøkkelen `"@_name": "value"`, elementets tekstinnhold blir enten elementets direkte strengverdi (når det ikke har barn eller attributter) eller en `"#text"`-nøkkel ved siden av eventuelle attributter, og gjentatte søskenelementer med samme tag blir en JSON-array.
Hvorfor bruke det?
- Toveis — konverter JSON til XML eller XML til JSON fra samme skjerm.
- Håndterer nøsting korrekt — nøstede JSON-objekter blir nøstede XML-elementer og omvendt, uansett dybde.
- Arrayer mappes til gjentatte elementer — en JSON-array under en nøkkel blir like mange søsken-XML-elementer med samme tag, og gjentatte XML-tagger kommer tilbake som en JSON-array.
- XML-attributter bevares — ved hjelp av konvensjonen `@_attributeName`, slik at attributtdata ikke går tapt.
- Kopier til utklippstavlen eller last ned som .json- eller .xml-fil.
- 100 % klientsidebasert — ingenting du limer inn blir lastet opp noe sted.
Slik bruker du det
- Velg en retning: «XML → JSON» eller «JSON → XML».
- Lim dataene dine inn i inndataboksen.
- Klikk «Konverter».
- Se over resultatet, kopier det, eller klikk «Last ned» for å lagre en fil.
Eksempel
Inndata
{"user":{"name":"Alice","age":30}}Resultat
<?xml version="1.0" encoding="UTF-8"?>
<user>
<name>Alice</name>
<age>30</age>
</user>Den ene toppnivå-nøkkelen i JSON («user») blir XML-rotelementet; hvis JSON-en har mer enn én toppnivå-nøkkel, pakker verktøyet alt inn i et <root>-element siden XML krever nøyaktig ett rotelement.
Praktiske tips
- Migrerer du en gammel XML-konfigurasjon (som en gammel apps innstillingsfil) til et moderne JSON-basert system: lim inn XML-en, konverter, og juster feltnavn ved behov.
- Tester du et SOAP- eller XML-RPC-endepunkt fra JavaScript: konverter JSON-forespørselen din til XML her før du sender den, eller konverter et XML-svar tilbake til JSON for enkel inspeksjon.
- Bruker JSON-en din arrayer for data som XML ville representere som gjentatte elementer, må du sørge for at arrayen er nøstet under én enkelt nøkkel først (f.eks. {"items":{"item":[1,2,3]}}) i stedet for en bar toppnivå-array, siden XML ikke kan ha flere rotelementer.
Hvorfor @_-attributtkonvensjonen er viktig
Det vanskeligste med JSON/XML-konvertering er at XML-elementer kan bære to slags data samtidig — attributter og barneinnhold — mens et vanlig JSON-objekt bare har nøkler og verdier. Uten en konvensjon for å holde disse atskilt ville en enkel konverter enten miste attributter helt eller blande dem sammen med barneelementer på en måte som ikke kan konverteres pålitelig tilbake. Konvensjonen med `@_name`-prefiks (brukt også av utbredte biblioteker i JavaScript-økosystemet) løser dette ved å gi attributter en tydelig, entydig nøkkelform, slik at `<product id="42">Widget</product>` konverteres frem og tilbake som `{"product":{"@_id":"42","#text":"Widget"}}` i stedet for å miste id-en eller gjette feil om hvilken verdi som var hva.
Ofte stilte spørsmål
Hva skjer med JSON som har mer enn én toppnivå-nøkkel?
XML krever ett enkelt rotelement, så hvis JSON-objektet ditt har flere toppnivå-nøkler (f.eks. {"a":1,"b":2}), pakkes resultatet inn i et <root>-element: <root><a>1</a><b>2</b></root>. Har JSON-en nøyaktig én toppnivå-nøkkel, blir den nøkkelen direkte navnet på rotelementet.
Hvordan representeres XML-attributter i JSON?
Et attributt som <user id="7"> blir nøkkelen "@_id": "7" i det resulterende JSON-objektet. Dette er en vanlig, dokumentert konvensjon (brukt av biblioteker som fast-xml-parser) som holder attributter atskilt fra barneelementer.
Blir gjentatte XML-elementer til en JSON-array?
Ja. Hvis et element har flere barn med samme tag-navn, f.eks. <items><item>1</item><item>2</item></items>, gir konvertering til JSON {"items":{"item":["1","2"]}}. Konverterer du den JSON-en tilbake til XML, gjenskapes de gjentatte <item>-elementene.
Bevares tall og boolske verdier når XML konverteres til JSON?
XML har ingen native forestilling om tall eller boolske verdier — alt er tekst — så tekstinnhold kommer gjennom som en JSON-streng (f.eks. "30" i stedet for 30). Trenger du numeriske typer, må du konvertere disse feltene i etterkant.
Blir dataene mine lastet opp noe sted?
Nei. Parsing og konvertering skjer helt i JavaScript i nettleseren din, ved hjelp av det innebygde DOMParser-API-et — ingenting sendes til en server, så det er trygt å bruke med private konfigurasjonsfiler eller interne API-nyttelaster.