XML do JSON
XML i JSON modelują dane inaczej: XML ma atrybuty i treść mieszaną, JSON ma obiekty i tablice. Konwersja bez strat wymaga konwencji. To narzędzie oferuje trzy: kompaktową (pomija atrybuty), Badgerfish (atrybuty pod @key, tekst pod $) i dosłowną (każdy węzeł XML staje się obiektem JSON z pełną wiernością). Wybierz tę, która pasuje do odbiorcy JSON, na którego celujesz.
Jak przekonwertować XML na JSON
-
1
Wklej XML
Dowolny poprawny składniowo XML. Przestrzenie nazw są zachowywane.
-
2
Wybierz styl konwersji
Kompaktowy, Badgerfish lub dosłowny/bezstratny.
-
3
Obsłuż tablice
Wymuś, by określone elementy zawsze były tablicami (konfigurowalne).
-
4
Skopiuj wyjście JSON
Ładnie sformatowane lub zminifikowane, do wyboru.
Porównanie trzech stylów
Wejście:
<book id="1" lang="en">
<title>1984</title>
<author>Orwell</author>
</book>
Kompaktowy (pomija atrybuty):
{
"book": {
"title": "1984",
"author": "Orwell"
}
}
Badgerfish (atrybuty pod @, tekst pod $):
{
"book": {
"@id": "1",
"@lang": "en",
"title": { "$": "1984" },
"author": { "$": "Orwell" }
}
}
Dosłowny / w stylu JsonML (pełna wierność):
{
"book": {
"@attributes": { "id": "1", "lang": "en" },
"title": "1984",
"author": "Orwell"
}
}
Wymuszone tablice
XML nie ma sposobu, by powiedzieć „to jest lista jednego elementu”. Sekwencja jednoelementowa wygląda identycznie jak skalar:
<items>
<item>A</item>
</items>
Może to serializować się jako {"item": "A"} albo {"item": ["A"]}. Konwerter pozwala oznaczyć nazwy elementów (przez XPath) jako zawsze-tablice, dzięki czemu Twój odbiorca JSON dostaje spójne typy.
Treść mieszana
Treść mieszana, tekst przeplatany z elementami potomnymi, to jedyne miejsce, gdzie każda konwersja XML na JSON traci informacje:
<p>Hello <em>world</em>!</p>
Większość stylów albo gubi tekst, albo go zwija. Styl dosłowny zachowuje kolejność za pomocą tablicy:
{
"p": {
"@content": ["Hello ", { "em": "world" }, "!"]
}
}
Wnioskowanie typów
Domyślnie wartości są ciągami. Przełącz „parsuj liczby/wartości logiczne”, a konwerter rzutuje 42, 3.14, true, false na odpowiadające typy JSON. Uważaj: atrybut XML id="007" staje się 7 z włączonym rzutowaniem, czego prawdopodobnie nie chcesz.
Kiedy który wybrać
- Kompaktowy: do czytelnego dla człowieka JSON, gdzie atrybuty są szumem.
- Badgerfish: gdy potrzebujesz atrybutów i tekstu na tej samej głębokości co dzieci.
- Dosłowny: gdy musisz wrócić do XML bez strat.
Najczęściej zadawane pytania
Gdy element pojawia się raz, konwerter domyślnie tworzy obiekt; dwa razy lub więcej, tablicę. Użyj opcji wymuszenia tablicy, by ujednolicić, jeśli Twój odbiorca oczekuje jednego kształtu.
Przedrostki przestrzeni nazw są zachowywane w kluczach (ns:title), chyba że włączysz „usuń przestrzenie nazw”. Same deklaracje stają się atrybutami @xmlns:ns na elemencie głównym.
Tryb dosłowny jest najbliższy bezstratności, ale kolejność treści mieszanej między elementami a tekstem jest podchwytliwa. Tryb kompaktowy zdecydowanie gubi atrybuty. Badgerfish to pragmatyczny złoty środek.
Nie. Konwersja działa w Twojej przeglądarce.
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.
Podgląd Markdown
Pisz w Markdown i obserwuj, jak wyrenderowany HTML aktualizuje się na żywo. Składnia w stylu GitHub z tabelami, listami zadań, ogrodzonymi blokami kodu i automatycznymi odnośnikami.
Narzędzie odstępów w kodzie Python
Ujednolić wcięcia oraz proste odstępy przy przecinkach i operatorach. To lekka obróbka tekstu, a nie Black, Ruff ani parser Pythona.
Formater JavaScript
Formatuj JavaScript, JSX, TypeScript i JSON z konfigurowalnym wcięciem, stylem cudzysłowów, średnikami i przecinkami końcowymi.
Generator fikcyjnych numerów telefonu
Generuj do 50 fikcyjnych numerów z oficjalnie zastrzeżonych zakresów w pięciu krajach.
Narzędzie jest dostępne w innych językach
- XML zu JSON [DE]
- XML para JSON [PT]
- Chuyển đổi từ XML sang JSON [VI]
- XML till JSON [SV]
- แปลง XML เป็น JSON [TH]
- XML ke JSON [ID]
- XML → JSON [KO]
- XML a JSON [ES]
- XMLからJSONへ [JA]
- XML إلى JSON [AR]
- XML vers JSON [FR]
- XML naar JSON [NL]
- XML in JSON [IT]
- От XML к JSON [RU]
- XML'den JSON'a [TR]
- XML 转 JSON [ZH]
- XML to JSON [EN]