Utilia

JSON til XML-konverter

Konvertér JSON til XML og XML til JSON i din browser, med attributter, gentagne elementer og CDATA håndteret. Intet uploades til en server.

Konvertering

Sådan bruger du JSON til XML-konverteren

  1. Vælg retningen under Konvertering: JSON → XML eller XML → JSON.
  2. Indsæt dine data, eller klik på Åbn fil for at indlæse en .json- eller .xml-fil (op til 10 MB).
  3. Indstil valgene: Indrykning (2 mellemrum, 4 mellemrum, tabulator eller Ingen (kompakt)) for begge retninger, Rodelement og Tilføj XML-deklarationen for JSON → XML og Konvertér tal og booleske værdier for XML → JSON.
  4. Klik på Konvertér. Resultatet opdateres også, mens du skriver, og fejl viser den linje og kolonne, hvor problemet blev fundet.
  5. Kopiér eller download resultatet. Skift retning lægger resultatet tilbage i inputfeltet, så du kan tjekke, at det går op.

Hvordan JSON svarer til XML

XML og JSON har ikke samme datamodel, så enhver konverter følger en konvention. Dette værktøj bruger den udbredte konvention fra biblioteket fast-xml-parser:

JSON XML
{"title": "Dune"} <title>Dune</title>
{"book": {"@id": "42"}} <book id="42"/>
{"p": {"@lang": "en", "#text": "Hi"}} <p lang="en">Hi</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Nøgler, der begynder med @, bliver til attributter, og nøglen #text rummer teksten i et element, der også har attributter.
  • En liste bliver til et gentaget element med samme navn.
  • Et XML-dokument skal have præcis ét rodelement. Hvis din JSON er et objekt med en enkelt nøgle, hvis værdi er et objekt, bliver den nøgle roden. Ellers pakkes hele værdien ind i det element, der er angivet i Rodelement (root som standard), og elementer i en liste på øverste niveau bliver til <item>-elementer.
  • Nøgler, der ikke er gyldige XML-navne, rettes: Mellemrum og symboler bliver til _, og et navn, der begynder med et ciffer, får en _ foran ("1st place" → <_1st_place>).
  • null og tomme strenge giver et tomt element som <note/>. Specialtegn (&, <, >, anførselstegn) kodes.

Hvordan XML svarer til JSON

  • Attributter bliver til nøgler med @ foran, og blandet tekst bliver til #text.
  • Gentagne elementer bliver til en liste. Et element, der kun optræder én gang, bliver til en enkelt værdi.
  • CDATA-sektioner slås sammen med teksten, og entiteter som &amp; afkodes. XML-deklarationen, behandlingsinstruktioner og kommentarer udelades.
  • Med Konvertér tal og booleske værdier bliver <price>12.5</price> til 12.5, og true bliver til en boolesk værdi, mens værdier med indledende nul, som 007, forbliver strenge. Slå valget fra for at beholde hver værdi som tekst.

Før konverteringen tjekkes XML for velformethed: Et manglende lukke-tag, et tag, der ikke passer, eller et & uden kodning meldes med linje og kolonne. Husk, at decimaltal i JSON og XML skrives med punktum (12.5), ikke med komma.

Ofte stillede spørgsmål

Bliver mine data sendt til en server?

Nej. Konverteringen kører helt i din browser. Dine XML-feeds, SOAP-meddelelser og konfigurationsfiler bliver på din computer.

Hvorfor bliver et element til en liste i én fil og til et objekt i en anden?

XML siger ikke, om et element er en liste. Når <tag> optræder to gange, bliver det til en liste. Når det optræder én gang, er det en enkelt værdi. Hvis din kode forventer en liste, skal du håndtere begge tilfælde eller tilføje et ekstra element, når du tester.

Hvorfor er turen frem og tilbage ikke altid identisk?

Nogle oplysninger har ingen tilsvarende på den anden side: kommentarer, rækkefølgen af blandet indhold eller forskellen på en liste med ét element og en enkelt værdi. For typiske dokumenter med data giver JSON → XML → JSON den samme struktur tilbage.

Kan jeg bruge navnerum?

Ja. Præfiksede navne som soap:Envelope og attributter som @xmlns:soap bevares, som de er, i begge retninger.

Validerer den mod et XSD-schema?

Nej. Den tjekker, at XML er velformet, men validerer den ikke mod en DTD eller et XSD-schema.