Utilia

Pretvarač JSON-a u XML

Pretvori JSON u XML i XML u JSON u pregledniku, uz atribute, ponovljene elemente i CDATA. Ništa se ne šalje na server.

Pretvaranje

Kako koristiti pretvarač JSON-a u XML

  1. Odaberi smjer: JSON → XML ili XML → JSON.
  2. Zalijepi podatke ili klikni Otvori datoteku da učitaš .json ili .xml datoteku (do 10 MB).
  3. Podesi opcije: Uvlačenje (2 razmaka, 4 razmaka, tabulator ili Bez (kompaktno)) za oba smjera; Korijenski element i Dodaj XML deklaraciju za JSON → XML; Pretvori brojeve i logičke vrijednosti za XML → JSON.
  4. Klikni Pretvori. Rezultat se ažurira i dok tipkaš, a greške prikazuju red i kolonu gdje je problem pronađen.
  5. Kopiraj ili preuzmi rezultat. Zamijeni smjer vraća izlaz u ulaz da provjeriš povratni put.

Kako se JSON preslikava u XML

XML i JSON nemaju isti model podataka, pa svaki pretvarač slijedi neku konvenciju. Ovaj alat koristi široko rasprostranjenu konvenciju iz biblioteke 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>
  • Ključevi koji počinju s @ postaju atributi, a ključ #text sadrži tekst elementa koji ima i atribute.
  • Niz postaje ponovljeni element istog naziva.
  • XML dokument treba tačno jedan korijenski element. Ako je tvoj JSON objekat s jednim ključem čija je vrijednost objekat, taj ključ postaje korijen. Inače se cijela vrijednost omata u element naveden u Korijenski element (root po zadanim postavkama), a stavke niza na najvišem nivou postaju elementi <item>.
  • Ključevi koji nisu ispravni XML nazivi se ispravljaju: razmaci i simboli postaju _, a naziv koji počinje cifrom dobija vodeći _ ("1st place" → <_1st_place>).
  • null i prazni stringovi daju prazan element poput <note/>. Posebni znakovi (&, <, >, navodnici) se escape-uju.

Kako se XML preslikava u JSON

  • Atributi postaju ključevi s prefiksom @, a miješani tekst postaje #text.
  • Ponovljeni elementi postaju niz; element koji se pojavljuje jednom postaje pojedinačna vrijednost.
  • CDATA sekcije se spajaju u tekst, a entiteti poput &amp; se dekodiraju. XML deklaracija, instrukcije za obradu i komentari se izostavljaju.
  • Uz Pretvori brojeve i logičke vrijednosti, <price>12.5</price> postaje 12.5, a true postaje logička vrijednost, dok vrijednosti s početnom nulom, poput 007, ostaju stringovi. Isključi opciju da svaka vrijednost ostane tekst.

Prije pretvaranja XML se provjerava je li ispravno oblikovan: završna oznaka koja nedostaje, oznaka koja se ne poklapa ili neescape-ovano & prijavljuju se s redom i kolonom.

Česta pitanja

Šalju li se moji podaci na server?

Ne. Pretvaranje se odvija potpuno u tvom pregledniku. Tvoji XML feedovi, SOAP poruke i konfiguracijske datoteke ostaju na tvom računaru.

Zašto element u jednoj datoteci postaje niz, a u drugoj objekat?

XML ne kaže je li element lista. Kad se <tag> pojavi dvaput, postaje niz; kad se pojavi jednom, to je pojedinačna vrijednost. Ako tvoj kod očekuje niz, obradi oba slučaja ili pri testiranju dodaj drugi element.

Zašto povratni put nije uvijek identičan?

Neke informacije nemaju ekvivalent s druge strane: komentari, redoslijed miješanog sadržaja ili razlika između niza s jednim elementom i pojedinačne vrijednosti. Za tipične dokumente s podacima pretvaranje JSON → XML → JSON vraća istu strukturu.

Mogu li koristiti prostore imena (namespaces)?

Da. Nazivi s prefiksom poput soap:Envelope i atributi poput @xmlns:soap zadržavaju se kakvi jesu u oba smjera.

Provjerava li prema XSD shemi?

Ne. Provjerava je li XML ispravno oblikovan, ali ga ne provjerava prema DTD-u ni XSD shemi.