JSON to XML

Konvertera JSON till XML-format

Prova ett exempel

JSON-inmatning

XML-utmatning

Körs lokalt · Säkert att klistra in hemligheter
XML visas här…

Vad är JSON till XML-konvertering?

JSON (JavaScript Object Notation) och XML (eXtensible Markup Language) är de två dominerande formaten för datautbyte inom mjukvaruutveckling. JSON använder nyckel-värdepar och arrayer i en kompakt syntax, medan XML omsluter data i öppnings- och stängningstaggar med valfria attribut. Att konvertera JSON till XML innebär att man översätter JSON:s strukturella primitiver — objekt, arrayer, strängar, tal, booleska värden och null — till ett välformat XML-dokument med matchande elementnästning.

XML är fortfarande det obligatoriska formatet i många företagssystem, myndighets-API:er, SOAP-webbtjänster och branschstandarder som HL7 (sjukvård), FpML (finans) och XBRL (finansiell rapportering). När din applikation producerar JSON men konsumenten nedströms förväntar sig XML hanterar en JSON till XML-konverterare översättningen utan manuell omstrukturering. Konverteringen följer förutsägbara mappningsregler: JSON-objekt blir XML-element, arrayelement blir upprepade syskonelem­ent och primitiva värden blir textnoder.

Det finns ingen enskild RFC eller W3C-standard som definierar hur JSON mappas till XML. Olika bibliotek producerar olika utdata för samma indata. Den vanligaste konventionen (som används av det här verktyget) omsluter hela dokumentet i ett konfigurerbart rotelement, konverterar varje JSON-nyckel till ett XML-barnelement och representerar arrayelement som upprepade element med samma taggnamn. Att förstå dessa mappningsregler spelar roll när det mottagande systemet kräver ett specifikt XML-schema (XSD).

Varför använda en online JSON till XML-konverterare?

Att skriva XML för hand från en JSON-källa är tidsödande och felbenäget. Felanpassade taggar, glömda stängningselement och felaktig nästning producerar dokument som misslyckas med schemavalidering. En konverterare hanterar den strukturella översättningen automatiskt.

Konvertera direkt i webbläsaren
Klistra in JSON och få välformat XML på millisekunder. Ingen serverroundtrip, ingen CLI-installation, inga beroenden att installera. Konverteringen körs helt i JavaScript på din enhet.
🔒
Håll känslig data privat
Din JSON-inmatning lämnar aldrig webbläsarfliken. All tolkning och XML-generering sker på klientsidan, vilket gör det säkert att konvertera nyttolastar som innehåller API-nycklar, token eller produktionsdata.
📋
Inget konto eller inloggning krävs
Öppna sidan, klistra in din JSON och kopiera XML-utdata. Inga registreringsformulär, e-postverifiering eller användningsgränser mellan dig och din konverterade data.
🌳
Hanterar kapslade strukturer automatiskt
Djupt kapslade objekt, blandade arrayer och null-värden konverteras korrekt. Verktyget bevarar hela hierarkin i din JSON-inmatning i det resulterande XML-trädet.

Användningsfall för JSON till XML

Integration med SOAP-webbtjänster
Ditt REST API returnerar JSON, men en partners SOAP-slutpunkt kräver XML-förfrågningskroppar. Konvertera JSON-nyttolasten till XML innan du omsluter den i ett SOAP-kuvert.
Datautbyte i företagsmiljöer
Äldre ERP- och CRM-system tar ofta bara emot XML-importer. Konvertera JSON-exporter från moderna verktyg till XML-flöden som matchar det förväntade schemat.
CI/CD-pipelinekonfiguration
Vissa byggverktyg (Maven, Ant, MSBuild) använder XML-konfigurationsfiler. Generera XML-konfigurationsfragment från JSON-parameterfiler under automatiserade byggen.
Förberedelse av QA-testdata
Generera XML-testfixtures från JSON-dataset. Producera snabbt giltiga XML-dokument för testning av XML-tolkare, XSLT-transformationer eller XPath-frågor.
Formatbrygga i datapipelines
ETL-pipelines som tar emot XML kan hämta data från JSON-producerande API:er. Konvertera intermediära JSON-resultat till XML innan de laddas in i det XML-baserade bearbetningssteget.
Lära sig XML-struktur
Studenter som studerar XML kan klistra in bekanta JSON-strukturer och se motsvarande XML-representation. Det gör tagnästning, elementhierarki och dokumentstruktur konkret.

Mappningsregler för JSON till XML

Eftersom det inte finns någon universell standard för JSON till XML-konvertering producerar olika verktyg olika utdata. Tabellen nedan visar de mappningskonventioner som används av det här verktyget och de flesta populära biblioteken (js2xmlparser, xmlbuilder, fast-xml-parser). Konventionen med upprepade syskon för arrayer blev dominerande eftersom den speglar hur XML-scheman naturligt modellerar samlingar — varje element är ett fullödigt element snarare än ett inbakat barn — och den integreras rent med XPath-frågor och XSLT-transformationer.

JSON TypeJSON ExampleXML Output
Object{"name": "Alice"}<name>Alice</name>
Nested object{"user": {"age": 30}}<user><age>30</age></user>
Array{"colors": ["red", "blue"]}<colors>red</colors><colors>blue</colors>
String"hello"<root>hello</root>
Number42<root>42</root>
Booleantrue<root>true</root>
Nullnull<root/>
Empty object{}<root/>
Empty array[](no child elements)

Kodexempel

Nedan finns körbara kodexempel för att konvertera JSON till XML i tre miljöer. Varje exempel producerar välformat XML från ett exempel-JSON-objekt.

JavaScript (Node.js)
import { create } from 'xmlbuilder2';

const json = {
  order: {
    id: 1024,
    items: [
      { sku: "A1", qty: 2 },
      { sku: "B3", qty: 1 }
    ],
    shipped: false
  }
};

const xml = create({ version: '1.0' })
  .ele(json)
  .end({ prettyPrint: true });

console.log(xml);
// → <?xml version="1.0"?>
// → <order>
// →   <id>1024</id>
// →   <items>
// →     <sku>A1</sku>
// →     <qty>2</qty>
// →   </items>
// →   <items>
// →     <sku>B3</sku>
// →     <qty>1</qty>
// →   </items>
// →   <shipped>false</shipped>
// → </order>
Python
import json
import xmltodict

data = {
    "order": {
        "id": 1024,
        "items": [
            {"sku": "A1", "qty": 2},
            {"sku": "B3", "qty": 1}
        ],
        "shipped": False
    }
}

# xmltodict.unparse expects a single root key
xml = xmltodict.unparse(data, pretty=True)
print(xml)
# → <?xml version="1.0" encoding="utf-8"?>
# → <order>
# →   <id>1024</id>
# →   <items>
# →     <sku>A1</sku>
# →     <qty>2</qty>
# →   </items>
# →   <items>
# →     <sku>B3</sku>
# →     <qty>1</qty>
# →   </items>
# →   <shipped>false</shipped>
# → </order>
Go
package main

import (
	"encoding/json"
	"encoding/xml"
	"fmt"
)

type Item struct {
	SKU string `json:"sku" xml:"sku"`
	Qty int    `json:"qty" xml:"qty"`
}

type Order struct {
	XMLName xml.Name `xml:"order"`
	ID      int      `json:"id" xml:"id"`
	Items   []Item   `json:"items" xml:"items"`
	Shipped bool     `json:"shipped" xml:"shipped"`
}

func main() {
	raw := `{"id":1024,"items":[{"sku":"A1","qty":2},{"sku":"B3","qty":1}],"shipped":false}`

	var order Order
	json.Unmarshal([]byte(raw), &order)

	out, _ := xml.MarshalIndent(order, "", "  ")
	fmt.Println(xml.Header + string(out))
	// → <?xml version="1.0" encoding="UTF-8"?>
	// → <order>
	// →   <id>1024</id>
	// →   <items>
	// →     <sku>A1</sku>
	// →     <qty>2</qty>
	// →   </items>
	// →   ...
}

Vanliga frågor

Är JSON till XML-konvertering förlustfri?
Strukturellt sett, ja — varje JSON-värde mappas till ett XML-element eller en textnod. Däremot skiljer XML inte nativt på tal, booleska värden och strängar på samma sätt som JSON gör. Värdet 42 i JSON blir textinnehållet "42" i XML. Om det mottagande systemet använder XML Schema-typdeklarationer (XSD) kan det återhämta de ursprungliga typerna vid tolkning. Utan ett schema går typinformationen praktiskt taget förlorad i det konverterade dokumentet.
Hur konverteras JSON-arrayer till XML?
Varje arrayelement blir ett syskon-XML-element med samma taggnamn. Exempelvis producerar JSON-arrayen "colors": ["red", "blue"] två element: &lt;colors&gt;red&lt;/colors&gt; och &lt;colors&gt;blue&lt;/colors&gt;. Vissa konverterare omsluter arrayer i ett förälderelement (t.ex. &lt;colorsList&gt;), men syskonelement-metoden är vanligare och matchar konventionen som används av JAXB, Jackson och fast-xml-parser.
Vad händer med null-värden vid konverteringen?
Ett JSON null konverteras typiskt till ett tomt XML-element — till exempel blir "middle_name": null &lt;middle_name/&gt;. Vissa bibliotek lägger till ett xsi:nil="true"-attribut för att signalera ett explicit null, vilket är användbart när målsystemet validerar mot ett XSD-schema. Det här verktyget skriver ut ett självstängande tomt element som standard.
Kan jag konvertera XML tillbaka till JSON?
Ja, men tur-och-retur-resan är inte alltid symmetrisk. XML-funktioner som attribut, bearbetningsinstruktioner, kommentarer, blandat innehåll och namnrymder har ingen direkt JSON-motsvarighet. Att konvertera XML till JSON och tillbaka till XML kan ge ett strukturellt annorlunda dokument. Om du behöver XML till JSON-konvertering, använd en dedikerad XML till JSON-konverterare som bevarar attribut och namnrymder.
Hur hanterar jag JSON-nycklar som inte är giltiga XML-elementnamn?
XML-elementnamn får inte börja med en siffra, innehålla mellanslag eller inkludera de flesta specialtecken. Om din JSON har en nyckel som "2024-data" eller "first name" måste konverteraren sanera den — vanligtvis genom att lägga till ett understreck som prefix eller ersätta ogiltiga tecken med understreck. Kontrollera konverterarens utdata och justera nyckelnamnen i käll-JSON:en om den resulterande XML:en behöver klara XSD-validering.
Hur stor JSON kan det här verktyget hantera?
Konverteraren körs i webbläsarens JavaScript-motor, så den praktiska gränsen beror på tillgängligt minne. De flesta moderna webbläsare hanterar JSON-dokument upp till 50–100 MB utan problem. För filer som är större än så, använd en strömmande konverterare som Pythons xmltodict eller ett kommandoradsverktyg som bearbetar data inkrementellt istället för att läsa in allt i minnet.
Är XML-utdata välformat eller giltig?
Utdata är alltid välformat XML — taggar är korrekt nästlade, specialtecken är escapade och dokumentet har ett enda rotelement. Huruvida utdata är giltig beror på målschemat (XSD eller DTD). Välformadhet är en strukturell garanti; giltighet kräver att elementnamn, nästningsordning och innehållstyper matchar en specifik schemadefinition.