UltKit

Převodník XML do JSON

Přeneste data z odpovědi SOAP, RSS feedu, konfiguračního souboru nebo exportu ze staršího systému do formátu JSON, který přímo čte váš JavaScript, Python nebo no-code nástroj. Parser přitom nemusíte psát ručně.

Převodník dat

nebo sem přetáhněte soubory CSV, TSV, TXT … ·

Max. 95 MB na soubor· Až 20 souborů· Smazáno po 30 minutách

Výstup

Soubory se zpracovávají na našich serverech a po 30 minutách se smažou.

Jak nástroj používat

  1. 1

    Nahrajte XML

    Přetáhněte soubory .xml do oblasti pro nahrání, nejvýše 20 v jedné dávce a každý do 95 MB. Každý soubor se převádí samostatně.

  2. 2

    Zvolte čitelný, nebo kompaktní výstup

    Volba Čitelné formátování je zapnutá, takže JSON je odsazený pro snadné čtení a kontrolu kódu. Pokud potřebujete co nejmenší výstup na jediném řádku pro data API, vypněte ji v části Pokročilá nastavení.

  3. 3

    Převeďte a použijte JSON

    Stiskněte Převést na JSON, stáhněte soubor .json a načtěte ho ve svém kódu nebo nástroji.

Nahrajte XML a stiskněte Převést na JSON: elementy se stanou klíči, opakované elementy poli a atributy zůstanou jako klíče s předponou @, takže se neztratí žádná informace ze značek.

Komu se hodí převodník XML do JSON

XML 1.0 se stalo doporučením W3C v únoru 1998 a po dalších deset let byl právě to způsob, jakým spolu systémy komunikovaly: webové služby SOAP, kanály RSS a Atom, dokumenty Office, bankovní zprávy, produktové katalogy. Řada těchto systémů stále funguje. JSON, specifikovaný v RFC 8259, převzal nová webová API, protože ho JavaScript přečte bez knihovny pro zpracování a protože se přímo mapuje na seznamy a slovníky téměř v každém jazyce.

Převádějí tedy obvykle ti, kdo propojují obě éry. Front-endový vývojář dostane odpověď SOAP od poskytovatele plateb nebo dopravy a chce obyčejný objekt. Tvůrce automatizací v Zapieru nebo Make vtahuje XML feed dodavatele do postupu, který nejlépe funguje s JSON. Datový inženýr migruje konfigurační soubory ze staré aplikace v Javě, nebo student potřebuje kanál RSS jako JSON pro školní projekt. Všichni chtějí stejnou strukturu bez špičatých závorek.

Převod XML do JSON: jak se mapují tagy, atributy a text

Vstup XML: objednávka s atributem, jedním zákazníkem a dvěma položkami
<order id="A-77">
  <customer>Lena Ortiz</customer>
  <total currency="EUR">59.90</total>
  <item sku="0042">Stolní lampa</item>
  <item sku="0108">LED žárovka</item>
</order>
Jak se jednotlivé části výše uvedené objednávky zobrazí v JSON
Konstrukce XMLPříkladVýsledek v JSON
Kořenový element<order>Klíč nejvyšší úrovně order
Atributid="A-77""@id": "A-77"
Element jen s textem<customer>"customer": "Lena Ortiz"
Text plus atribut<total currency="EUR">59.90</total>{"@currency": "EUR", "#text": "59.90"}
Opakovaný elementdvě značky <item>pole "item": [ … , … ]
Komentář<!-- note -->Vynechán; JSON komentáře nemá

XML

Extensible Markup Language

XML je značkovací jazyk pro strukturovaná data, který W3C zveřejnilo v roce 1998. Používá vnořené značky s atributy a podporuje schémata, jmenné prostory a validaci, díky čemuž je robustní pro složité dokumenty. Je základem kanálů RSS, SVG, dokumentů Office, souborů sitemap i mnoha podnikových a vládních výměn dat. XML je ve srovnání s JSON rozvláčné, ale přečte ho každý programovací jazyk i mnoho tabulkových nástrojů.

Komprese
–
Průhlednost
–
Animace
–
Představeno
1998 · W3C
Převodník XML

JSON

JavaScript Object Notation

JSON je odlehčený textový formát pro strukturovaná data, který na počátku 21. století zpopularizoval Douglas Crockford a který je standardizován jako RFC 8259 a ECMA-404. Pomocí jednoduché čitelné syntaxe popisuje objekty, pole, řetězce, čísla, booleovské hodnoty a null. Je výchozím formátem webových API, konfiguračních souborů a výměny dat mezi aplikacemi téměř v každém programovacím jazyce. Nemá vestavěné komentáře, data ani schémata a rozsáhlé vnořené soubory se bez prohlížeče špatně čtou.

Komprese
–
Průhlednost
–
Animace
–
Představeno
2001 · Douglas Crockford
Převodník JSON

XML se převádí do JSON, když data ze staršího nebo podnikového systému potřebují dorazit do webové aplikace, skriptu nebo automatizačního nástroje: JSON se v JavaScriptu zpracuje nativně a v Pythonu se přímo mapuje na slovníky.

Vlastnosti XML, pro které JSON nemá místo

Oba formáty popisují stromy, ale XML obsahuje navíc věci, které JSON nikdy neměl. Jmenné prostory, definované konsorciem W3C v roce 1999, umožňují jednomu dokumentu míchat slovníky jako soap: a xsi:; v JSON přežijí jen jako součást názvů klíčů. Komentáře a zpracovací instrukce nemají kam jít a vypadnou. Smíšený obsah, tedy text prokládaný podřízenými značkami, například odstavec XHTML s tučným slovem, je v XML platný, ale v JSON se stává nepohodlným, takže dokumenty textového typu je lepší převádět do HTML nebo Markdownu než do JSON.

Nenápadný problém je pořadí. XML udržuje sourozenecké elementy v posloupnosti a schéma se na ni může spoléhat; klíče objektu JSON jsou podle standardu neuspořádané. Opakované elementy si pořadí uvnitř svého pole zachovají, což pokryje většinu reálných dat. Pokud je XML plochý seznam záznamů, který má skončit spíš v tabulce než v kódu, XML do Excelu vám dá přímo řádky a sloupce a XML do CSV vytvoří soubor pro import do databáze.

Otázky k převodu XML do JSON

Proč je stejný prvek v jednom souboru pole a v jiném objekt?

Převodník vidí jen to, co je v dokumentu. Pokud objednávka obsahuje tři značky item, položky se stanou polem; pokud jednu, není co opakovat, a vznikne proto jediný objekt. Kód, který JSON čte, by měl počítat s oběma tvary, nebo před procházením cyklem zabalit jediný objekt do pole.

Jak se atributy XML zapisují do JSON?

Každý atribut se stane klíčem se znakem @ před názvem, takže currency="EUR" se změní na "@currency": "EUR". Pokud má element atributy i text, text se uloží do klíče #text vedle nich. Tato konvence zabraňuje kolizi atributů a podřízených elementů, které mají stejný název.

Převádějí se čísla z XML na čísla v JSON?

XML nemá vlastní datové typy; 42 a "42" vypadají ve značce stejně. Hodnoty proto vycházejí jako řetězce, díky čemuž zůstanou PSČ a identifikátory jako 007 v bezpečí. Pole, která váš kód potřebuje jako čísla, převeďte po načtení.

Co se stane s prefixy jmenných prostorů, například soap:Envelope?

Prefix zůstává součástí názvu klíče, takže obálka se zobrazí jako soap:Envelope a deklarace jmenného prostoru jako klíč @xmlns:soap. Prvky z různých slovníků tak zůstanou oddělené; pokud pracujete jen s jedním, prefixy si ve svém kódu odstraňte.

Mohu JSON potom převést zpět do XML?

Ano, pomocí JSON do XML. Podle stejné konvence @ a #text se atributy vrátí jako atributy. Komentáře a původní odsazení se nevrátí, protože je JSON nikdy neobsahoval.