JSON do XML
Wklej dokument JSON i otrzymaj jego odpowiednik w XML z wybraną przez Ciebie nazwą elementu głównego, spójną strategią dla tablic (powtarzające się elementy lub element opakowujący), opcjonalną deklaracją XML oraz czytelnym wcięciem. Przydatne, gdy starszy system wymaga XML, a Twoje dane źródłowe są przechowywane w formacie JSON.
Jak przekształcić JSON w XML
-
1
Wklej JSON
Obiekt lub tablica na najwyższym poziomie. Nadasz nazwę elementowi głównemu.
-
2
Nazwij element główny
XML wymaga jednego elementu głównego. Wartość domyślna to `<root>`; nadaj mu sensowną nazwę, np. `<users>` lub `<response>`.
-
3
Wybierz strategię dla tablic
„Powtarzające się elementy" (każdy element tablicy staje się sąsiednim `<item>`) lub „element opakowujący" (tablica zostaje umieszczona wewnątrz nazwanego elementu opakowującego).
-
4
Skopiuj XML
Opcjonalna deklaracja XML, poprawne wcięcia oraz wartości z escapowaniem encji dla `<`, `>`, `&` i cudzysłowów.
Przykład – elementy powtarzające się
Wejście:
{ "users": [ { "name": "Alice" }, { "name": "Bob" } ] }
Wyjście:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<users>
<name>Alice</name>
</users>
<users>
<name>Bob</name>
</users>
</root>
Przykład – element opakowujący dla tablicy
To samo wejście ze strategią „opakowywanie tablic w <item>“:
<root>
<users>
<item>
<name>Alice</name>
</item>
<item>
<name>Bob</name>
</item>
</users>
</root>
Mapowanie typów
| JSON | XML |
|---|---|
| ciąg znaków | zawartość tekstowa, z escapowaniem encji |
| liczba całkowita / dziesiętna | zawartość tekstowa (bez adnotacji typu XML) |
| boolean | true / false jako tekst |
| null | pusty element (<foo/>) lub pominięty |
| tablica | powtarzające się elementy lub element opakowujący + elementy |
| obiekt | zagnieżdżony element z elementami podrzędnymi |
Atrybuty a elementy
XML odróżnia atrybuty (<user id="1">) od elementów podrzędnych (<user><id>1</id></user>). Konwerter domyślnie używa elementów – są one bezstratne przy konwersji w obie strony. Jeśli docelowy XML wymaga atrybutów, użyj konwencji prefiksu klucza:
- Klucz JSON
@idstaje się atrybutem XMLid="..."w elemencie nadrzędnym. - Klucz JSON
#textstaje się zawartością tekstową elementu nadrzędnego.
Te konwencje pochodzą z odwzorowań BadgerFish i Parker – dwóch najpowszechniejszych standardów przekształcania JSON w XML.
Zasady escapowania
<-><>->>&->&"→"(w wartościach atrybutów)'→'(opcjonalnie)- Bajty w UTF-8 są zachowywane i deklarowane w prologu XML.
Najczęstsze błędy
- Tablica JSON na poziomie głównym. XML wymaga jednego elementu głównego. Konwerter opakowuje tablicę w
<root>(lub dowolną wybraną nazwę). - Klucze numeryczne. JSON
{"1": "a"}jest dozwolony; nazwy elementów XML nie mogą zaczynać się od cyfry. Konwerter dodaje przed cyfrą podkreślenie (_1) lub pozwala zdefiniować własne odwzorowanie. - Tablice mieszane.
[1, "two", { "x": true }]nie ma jednoznacznego odwzorowania. Zazwyczaj oznacza to, że JSON wymaga normalizacji przed konwersją. - Ogromne dokumenty. XML jest rozwlekły – plik JSON o wielkości 10 MB może stać się plikiem XML o wielkości 20–30 MB. W przypadku bardzo dużych danych rozważ konwersję strumieniową.
Najczęściej zadawane pytania
Zgodnie ze specyfikacją XML wymaga jednego elementu głównego. Jeśli Twój JSON jest tablicą lub zawiera kilka kluczy najwyższego poziomu, konwerter umieszcza wszystko w elemencie głównym o dowolnej nazwie (domyślnie <root>).
Tak. Wykorzystaj konwencję prefiksu @ w kluczach JSON (np. "@id": 1); te klucze stają się atrybutami, a pozostałe zostają elementami podrzędnymi. Odpowiada to odwzorowaniu BadgerFish.
Dwie strategie: powtarzające się sąsiednie elementy (każdy element otrzymuje klucz nadrzędny jako znacznik) lub element opakowujący zawierający elementy <item>. Wybierz ten, który odpowiada docelowemu schematowi XML.
Nie. Konwerter generuje deklarację XML (<?xml version="1.0"?>), ale nie DOCTYPE. W przypadku XML wymagającego referencji do DTD lub XSD dodaj ją ręcznie po konwersji.
Powiązane narzędzia
Tabela ASCII
Pełna tabela ASCII od 0 do 127 z zapisem dziesiętnym, szesnastkowym, ósemkowym i binarnym oraz notacją numerycznych odwołań HTML, w tym kodami sterującymi NUL, LF i DEL.
Referencja znaków HTML
Przeszukiwalna lista encji HTML wraz z ich kodami nazwanymi i liczbowymi oraz kopiowaniem jednym kliknięciem specjalnych znaków i symboli.
Skróty klawiaturowe
Wyszukuj udokumentowane skróty domyślne VS Code, Chrome i Bash z GNU Readline w macOS, Windows i Linux.
Generator EditorConfig
Wygeneruj plik .editorconfig z własnymi regułami stylu i rozmiaru wcięć, końca linii, kodowania i białych znaków, aby uzyskać spójne formatowanie w różnych IDE i edytorach.
Walidator adresów e-mail
Zweryfikuj adres e-mail: sprawdzenie składni RFC 5322, sprawdzenie rekordu MX w czasie rzeczywistym oraz szczegóły dotyczące części lokalnej, domeny i długości. Żadna wiadomość nie jest wysyłana.
Formatowanie HTML
Formatuj HTML lokalnie w przeglądarce, używając wcięć dwóch lub czterech spacji. HTML nie jest wysyłany ani walidowany.
Narzędzie jest dostępne w innych językach
- JSON ke XML [ID]
- JSON a XML [ES]
- JSON vers XML [FR]
- JSON에서 XML로 [KO]
- JSON naar XML [NL]
- แปลง JSON เป็น XML [TH]
- JSON إلى XML [AR]
- JSON zu XML [DE]
- Chuyển đổi từ JSON sang XML [VI]
- JSON till XML [SV]
- JSON para XML [PT]
- JSONからXMLへ [JA]
- JSON in XML [IT]
- Преобразование JSON в XML [RU]
- JSON'ten XML'e [TR]
- JSON 到 XML [ZH]
- JSON to XML [EN]