CodeKitHub
JSON-værktøjer

JSON ↔ XML-konverter

Senest opdateret:

For at konvertere JSON til XML bliver hver nøgle til et element-tag, og hver værdi bliver dens tekstindhold — indlejrede objekter bliver til indlejrede elementer, arrays bliver til gentagne søskende-elementer, og XML-attributter mappes til `@_navn`-nøgler i JSON, så rundturen forbliver tabsfri. Dette værktøj foretager den konvertering, i begge retninger, helt i din browser.

Hvad er dette værktøj?

XML og JSON er begge træformede dataformater, men de dukker op forskellige steder: ældre virksomheds-API'er, SOAP-tjenester, RSS/Atom-feeds og mange konfigurationsformater taler stadig XML, mens moderne REST-API'er og JavaScript-kode næsten udelukkende taler JSON. Dette værktøj oversætter mellem de to, så du ikke behøver at skrive nogen af dem i hånden, når du integrerer gamle og nye systemer.

Konverteringen er bygget direkte på browserens DOMParser-API til at læse XML, og følger den struktur, der er defineret af W3C XML 1.0-specifikationen til at producere den — så den XML, den genererer, er velformet, og den XML, den accepterer, parses på samme måde som en browser eller ethvert standardkompatibelt XML-bibliotek ville parse den.

Fordi XML har koncepter, JSON ikke har (attributter, blandet tekst-/elementindhold, et obligatorisk enkelt rodelement), og JSON har koncepter, XML ikke har (native arrays, booleans, tal), bruger værktøjet en dokumenteret, udbredt konvention: en XML-attribut `navn="værdi"` bliver til JSON-nøglen `"@_navn": "værdi"`, elementtekstindhold bliver enten elementets direkte strengværdi (når det ikke har børn eller attributter) eller en `"#text"`-nøgle sammen med eventuelle attributter, og gentagne søskende-elementer med samme tag bliver til et JSON-array.

Hvorfor bruge det?

  • Tovejs — konverter JSON til XML eller XML til JSON fra samme skærm.
  • Håndterer indlejring korrekt — indlejrede JSON-objekter bliver til indlejrede XML-elementer og omvendt, uanset dybde.
  • Arrays mappes til gentagne elementer — et JSON-array under en nøgle bliver til lige så mange søskende-XML-elementer med samme tag, og gentagne XML-tags kommer tilbage som et JSON-array.
  • XML-attributter bevares — ved brug af `@_attributnavn`-konventionen, så attributdata ikke stille droppes.
  • Kopiér til udklipsholder eller download som en .json- eller .xml-fil.
  • 100% klient-side — intet du indsætter, uploades nogen steder.

Sådan bruger du det

  1. Vælg en retning: "XML → JSON" eller "JSON → XML".
  2. Indsæt dine data i inputboksen.
  3. Klik "Convert".
  4. Gennemgå resultatet, kopiér det derefter eller klik "Download" for at gemme en fil.

Eksempel

Input

{"user":{"name":"Alice","age":30}}

Output

<?xml version="1.0" encoding="UTF-8"?>
<user>
  <name>Alice</name>
  <age>30</age>
</user>

Den enkelte JSON-nøgle på øverste niveau ("user") bliver til XML-rodelementet; hvis JSON'en har mere end én nøgle på øverste niveau, pakker værktøjet alt ind i et <root>-element, da XML kræver præcis ét rodelement.

Praktiske tips

  • Migrering af en ældre XML-konfiguration (som en gammel apps indstillingsfil) til et moderne JSON-baseret system: indsæt XML'en, konverter, og justér feltnavne efter behov.
  • Testning af et SOAP- eller XML-RPC-endpoint fra JavaScript: konverter din JSON-request-payload til XML her, før du sender den, eller konverter et XML-svar tilbage til JSON for nemt at inspicere det.
  • Hvis din JSON bruger arrays til data, som XML ville repræsentere som gentagne elementer, skal du sørge for, at arrayet først er indlejret under en enkelt nøgle (f.eks. {"items":{"item":[1,2,3]}}) frem for et nøgent array på øverste niveau, da XML ikke kan have flere rodelementer.

Hvorfor @_ attributkonventionen betyder noget

Det trickyste ved JSON/XML-konvertering er, at XML-elementer kan bære to slags data på én gang — attributter og underindhold — mens et almindeligt JSON-objekt blot har nøgler og værdier. Uden en konvention til at holde disse adskilt ville en naiv konverter enten miste attributter helt eller blande dem sammen med underelementer på en måde, der ikke pålideligt kan konverteres tilbage. `@_navn`-præfikskonventionen (også brugt af udbredte biblioteker i JavaScript-økosystemet) løser dette ved at give attributter en tydelig, entydig nøgleform, så `<product id="42">Widget</product>` konverteres frem og tilbage rent som `{"product":{"@_id":"42","#text":"Widget"}}` i stedet for at miste id'et eller gætte forkert, hvilken værdi der var hvilken.

Ofte stillede spørgsmål

Hvad sker der med JSON med mere end én nøgle på øverste niveau?

XML kræver et enkelt rodelement, så hvis dit JSON-objekt har flere nøgler på øverste niveau (f.eks. {"a":1,"b":2}), pakkes outputtet ind i et <root>-element: <root><a>1</a><b>2</b></root>. Hvis din JSON har præcis én nøgle på øverste niveau, bliver den nøgle direkte til rodelementnavnet.

Hvordan repræsenteres XML-attributter i JSON?

En attribut som <user id="7"> bliver til nøglen "@_id": "7" i det resulterende JSON-objekt. Dette er en almindelig, dokumenteret konvention (brugt af biblioteker som fast-xml-parser), der holder attributter adskilt fra underelementer.

Bliver gentagne XML-elementer til et JSON-array?

Ja. Hvis et element har flere børn med samme tagnavn, f.eks. <items><item>1</item><item>2</item></items>, giver konvertering til JSON {"items":{"item":["1","2"]}}. At konvertere den JSON tilbage til XML genskaber de gentagne <item>-elementer.

Bevares tal og booleans, når XML konverteres til JSON?

XML har intet nativt koncept for tal eller booleans — alt er tekst — så tekstindhold kommer igennem som en JSON-streng (f.eks. "30" i stedet for 30). Hvis du har brug for numeriske typer, skal du konvertere de felter bagefter.

Bliver mine data uploadet nogen steder?

Nej. Parsing og konvertering sker helt i JavaScript i din browser ved brug af det indbyggede DOMParser-API — intet sendes til en server, hvilket gør det sikkert at bruge med private konfigurationsfiler eller interne API-payloads.

Relaterede værktøjer