/xml-json

XML ↔ JSON konverterer

Konverter strukturerte xml-data og dokumenter til JSON, eller motsatt, lokalt.

Slik fungerer det

Dette verktøyet konverterer strukturerte data mellom XML og JSON lokalt i nettleseren din. Attributter i XML-noder blir konvertert til egne `@attributes`-objekter i JSON, og elementer med samme navn grupperes automatisk i tabeller (arrays).

Om dette verktøyet

XML og JSON er to måter å beskrive strukturert data på. XML kom først, med en tagg-basert syntaks som ligner HTML, og styrer fortsatt SOAP-API-er, RSS, SVG, Office-dokumenter, offentlige registerformater og industriprotokoller. JSON er yngre og mer kompakt, brukes av moderne API-er, konfigurasjonsfiler og NoSQL-databaser. Dette verktøyet konverterer i begge retninger direkte i nettleseren: lim inn XML for å få JSON, eller JSON for å få XML tilbake. Attributter, tekstinnhold, nestede noder og gjentagelser håndteres, og du kan velge om attributter skal prefikses med @ eller mappes til vanlige felter.

Slik bruker du det

  1. Lim inn XML- eller JSON-innholdet i tekstområdet.
  2. Verktøyet gjenkjenner format automatisk og viser motsatt format til høyre.
  3. Juster hvordan attributter og tekstnoder skal representeres (@ prefix, «#text»-nøkkel osv.) om nødvendig.
  4. Kopier resultatet, eller last ned som .xml/.json for videre bruk.

Eksempler

XML til JSON
Inn<person alder="32"> <navn>Anna</navn> <by>Oslo</by> </person>
Ut{ "person": { "@alder": "32", "navn": "Anna", "by": "Oslo" } }
Gjentatte noder blir liste
Inn<liste> <element>a</element> <element>b</element> </liste>
Ut{ "liste": { "element": ["a", "b"] } }
Første forekomst blir en verdi, andre gjør feltet om til en liste. Dette er et velkjent XML→JSON-uklarhet.

Vanlige bruksområder

  • Migrere gamle SOAP-integrasjoner til moderne REST/JSON-API-er.
  • Konvertere Altinn-, EU- eller offentlige XML-eksport til JSON for analyse.
  • Debugge RSS/Atom-feeds i et mer lesbart format.
  • Konvertere SVG-metadata til JSON for CMS-import.
  • Generere fixtures til enhetstester i valgt format.

Ofte stilte spørsmål

Hvorfor har JSON-en «@»-tegn foran nøkler?
Konvensjonen skiller XML-attributter fra elementer. Uten skille ville <person alder="32"><alder>gammel</alder></person> kollidere. Du kan slå av prefikset i innstillingene om du ikke trenger å reversere.
Er det tap ved konverteringen?
Litt. XML har ordning, namespaces, kommentarer og «mixed content» som JSON ikke har enkle motstykker for. Enkle datastrukturer overlever fint begge veier, komplekse dokumentmerket-XML bør revideres manuelt.
Beholdes XML-namespaces?
Ja. xmlns-attributter bevares som vanlige attributter (@xmlns eller @xmlns:pfx). Ved tilbakekonvertering til XML gjenopprettes prefiksene.
Kan verktøyet validere XML mot en XSD?
Nei. Verktøyet gjør bare well-formed-sjekk. For XSD-validering trenger du enten et desktop-verktøy (XMLSpy, Oxygen) eller et bibliotek som libxml2, Saxon eller Xerces.

Teknisk bakgrunn

XML er en W3C-standard fra 1998, avledet fra SGML, med en streng syntaks: én rot, riktig nestede tagger, obligatorisk avslutning og tegnkodings-deklarasjon. Attributter er strenger, elementer kan inneholde tekst, andre elementer eller begge («mixed content»). Namespaces (xmlns) løser konflikter når to skjemaer bruker samme tagnavn. JSON er definert i RFC 8259 med bare seks typer: object, array, string, number, boolean og null. Standard-konvensjoner for XML→JSON (som BadgerFish, JsonML og Parker) skiller seg i hvordan attributter og gjentagelser mappes. Verktøyet vårt bruker en enkel variant: attributter blir «@navn», tekstinnhold blir «#text», flere elementer med samme navn blir en array. Ved motsatt konvertering brukes disse konvensjonene til å rekonstruere en gyldig XML-struktur. For helt korrekt konvertering av dokumentmerket XML (som HL7, XBRL eller Office) bør du bruke domenespesifikke biblioteker som forstår semantikken.