Skip to content

Konwerter JSON na XML

Wklej JSON, uzyskaj XML natychmiast. Konwertuje obiekty, tablice i atrybuty @_ w przeglądarce — nic nie jest przesyłane. Bezpłatne, prywatne, bez rejestracji.

Bez śledzenia Działa w przeglądarce Bezpłatne
Opcje · 2 spacje · JSON → XML
Wcięcie
0 znaków
XML Wynik
0 linii
Zweryfikowano pod kątem poprawności strukturalnej XML 1.0, poprawności konwencji @_/#text oraz dokładności normalizacji elementu głównego — Go Tools Engineering Team · May 29, 2026

Czym jest konwersja JSON na XML i jak działa?

JSON (JavaScript Object Notation) i XML (Extensible Markup Language) to oba formaty danych strukturalnych, ale mają zasadniczo różne modele: JSON jest drzewem obiektów, tablic, ciągów, liczb, wartości logicznych i null bez koncepcji atrybutów ani ograniczeń elementu głównego dokumentu; XML jest drzewem elementów, które mogą nosić atrybuty i treść tekstową, a dokument musi mieć dokładnie jeden element główny. Konwersja z JSON na XML wymaga zestawu konwencji do przezwyciężenia tej rozbieżności.

Narzędzie używa najszerzej przyjętej konwencji — tej samej co fast-xml-parser (Node.js), xmltodict (Python) i JAXB (Java) — stosowanej w odwrotnej kolejności:

**1. Normalizacja elementu głównego.** Najważniejsza różnica między JSON a XML to wymóg elementu głównego. JSON nie ma koncepcji elementu głównego; XML wymaga dokładnie jednego. Konwerter automatycznie obsługuje cztery przypadki. Obiekt z jednym kluczem używa tego klucza jako elementu głównego XML: { "config": {...} } → .... Obiekt z wieloma kluczami owija w : { "a": 1, "b": 2 } → 12. Tablica najwyższego poziomu owija jako .... Prymitywna wartość owija jako wartość.

**2. Prefiks @_ → atrybuty XML.** Klucze JSON z prefiksem @_ stają się atrybutami XML na okalającym elemencie. { "element": { "@_id": "42", "@_class": "primary" } } produkuje . Ten prefiks to kanoniczna konwencja — żadna poprawna nazwa elementu XML nie zaczyna się od @, więc nigdy nie ma kolizji z nazwami elementów podrzędnych.

**3. #text → treść tekstowa elementu.** Gdy element musi mieć zarówno atrybuty, jak i treść tekstową, tekst jest przechowywany pod kluczem #text: { "price": { "@_currency": "USD", "#text": "29.99" } } → 29.99. Elementy z tylko treścią tekstową (bez kluczy @_) konwertują na zwykłe elementy tekstowe bez tej pośredniości.

**4. Tablice → powtarzające się elementy siostrzane o tej samej nazwie.** XML dopuszcza wiele elementów podrzędnych o tej samej nazwie; JSON używa tablic dla list uporządkowanych. Tablica JSON pod kluczem produkuje powtarzające się elementy podrzędne reużywające nazwy klucza: { "items": ["a", "b"] } produkuje ab (dwa elementy są siostrzane pod rodzicem). Gdy całe wejście JSON jest tablicą najwyższego poziomu, dodawany jest kontener i każdy element staje się podrzędnym elementem to stała zapasowa nazwa używana tylko w tym przypadku.

**5. Symetryczność z XML na JSON.** Konwencje @_ i #text używane tutaj to dokładnie te same konwencje używane przez towarzyszący Konwerter XML na JSON. Oznacza to, że konwersja JSON → XML → JSON zachowuje atrybuty, treść tekstową i strukturę elementów — o ile wejściowy JSON stosuje konwencje @_/#text.

**Kiedy konwertować JSON na XML?** Najczęstsze scenariusze to: (1) wysyłanie danych do starszej usługi SOAP lub XML wymagającej treści żądania XML; (2) generowanie plików konfiguracyjnych XML (Spring, Maven, Ant, zasoby Androida) z danych JSON; (3) tworzenie XML mapy strony lub kanału RSS z danych treści JSON; (4) współpraca z systemami korporacyjnymi (ERP, CRM, EDI) konsumującymi XML; (5) programowe generowanie SVG lub innych formatów graficznych opartych na XML z danych JSON. Aby formatować i walidować wynikowy XML, użyj Formatowania XML.

// Convert JSON to XML in Node.js using fast-xml-parser
import { XMLBuilder } from 'fast-xml-parser';

const data = {
  catalog: {
    product: {
      '@_id': 'P01',
      '@_category': 'electronics',
      name: 'Wireless Headphones',
      price: {
        '@_currency': 'USD',
        '#text': '79.99'
      }
    }
  }
};

const builder = new XMLBuilder({
  attributeNamePrefix: '@_',   // @_ keys become XML attributes
  textNodeName: '#text',       // #text key becomes element text content
  ignoreAttributes: false,     // process @_ attribute keys
  format: true,                // pretty-print with indentation
  indentBy: '  ',              // 2-space indent
});

const xml = builder.build(data);
console.log(xml);
// <catalog>
//   <product id="P01" category="electronics">
//     <name>Wireless Headphones</name>
//     <price currency="USD">79.99</price>
//   </product>
// </catalog>

Kluczowe funkcje

Konwersja na żywo

Wynik XML aktualizuje się natychmiast podczas wpisywania lub wklejania JSON — bez potrzeby klikania przycisku Konwertuj. Duże dane wejściowe (>200 KB) automatycznie przełączają się na tryb ręczny, aby przeglądarka pozostała responsywna.

Automatyczna normalizacja elementu głównego

XML wymaga dokładnie jednego elementu głównego. Obiekty z jednym kluczem używają swojego klucza jako elementu głównego; obiekty z wieloma kluczami owijają w ; tablice najwyższego poziomu stają się ...; prymitywy stają się wartość — zawsze poprawny wynik XML.

Konwencja atrybutów @_ i #text

Klucze z prefiksem @_ stają się atrybutami XML; klucz #text staje się treścią tekstową elementu. Odpowiada to konwencji fast-xml-parser i xmltodict, dzięki czemu wyjście jest symetryczne z towarzyszącym Konwerterem XML na JSON.

Tablice na powtarzające się elementy

Tablice JSON pod kluczem produkują powtarzające się elementy podrzędne reużywające nazwy klucza — bez singularyzacji. { "items": [1, 2, 3] } daje trzy elementy siostrzane . Tablica najwyższego poziomu owija jako ... używając jako stałej dosłownej nazwy.

100% prywatność w przeglądarce

Cała konwersja odbywa się lokalnie w przeglądarce przy użyciu JavaScript. Dane JSON — w tym dane uwierzytelniające, wewnętrzne konfiguracje i wrażliwe ładunki — nigdy nie są wysyłane na żaden serwer, nigdy nie są rejestrowane ani przechowywane.

Symetryczna konwersja w obie strony z XML na JSON

Konwencje @_ i #text są współdzielone z towarzyszącym Konwerterem XML na JSON. Konwersja JSON → XML → JSON wiernie zachowuje atrybuty, treść tekstową i zagnieżdżoną strukturę.

Przykłady

Obiekt odpowiedzi API

{"user":{"id":42,"name":"Alice Kim","email":"alice@example.com","role":"admin","address":{"city":"Seoul","country":"KR"}}}

Obiekt JSON z jednym kluczem, gdzie klucz najwyższego poziomu staje się elementem głównym XML. Zagnieżdżony obiekt address produkuje podrzędny element

z podrzędnymi elementami i . Ponieważ zewnętrzny obiekt ma dokładnie jeden klucz ("user"), nie jest dodawany żaden kontener — sam «user» jest elementem głównym. Liczby takie jak 42 stają się treścią tekstową verbatim: 42.

Tablica najwyższego poziomu

[{"id":1,"name":"Widget A","price":9.99},{"id":2,"name":"Widget B","price":14.99},{"id":3,"name":"Widget C","price":4.49}]

Gdy całe wejście jest tablicą JSON (nieowiniętą w obiekt), konwerter produkuje .... Każdy element tablicy staje się podrzędnym elementem — «item» to stała dosłowna nazwa kontenera używana wyłącznie dla tablic najwyższego poziomu. Jest to jedyny przypadek, gdy pojawia się ; tablice pod kluczem obiektu reużywają nazwy tego klucza dla każdego elementu.

Obiekt z atrybutami i treścią tekstową

{"catalog":{"product":{"@_id":"P01","@_category":"electronics","name":"Wireless Headphones","price":{"@_currency":"USD","#text":"79.99"}}}}

Klucze z prefiksem @_ stają się atrybutami XML na elemencie: @_id staje się id="P01", a @_category staje się category="electronics" na elemencie . Klucz #text staje się treścią tekstową elementu — więc obiekt price produkuje 79.99. To dobrze współdziała z Konwerterem XML na JSON, który używa tych samych konwencji @_ i #text.

Jak używać

  1. 1

    Wklej dane JSON

    Wprowadź lub wklej dane JSON do pola wejściowego powyżej. Możesz też kliknąć «Wczytaj przykład», aby wypróbować próbkę — obiekt odpowiedzi API, ładunek tablicowy lub obiekt używający atrybutów @_ i #text.

  2. 2

    Zobacz wynik XML na żywo

    XML pojawia się natychmiast w panelu wyjściowym. Obiekty z jednym kluczem używają swojego klucza jako elementu głównego; obiekty z wieloma kluczami owijają w ; klucze z prefiksem @_ stają się atrybutami; tablice stają się powtarzającymi się elementami podrzędnymi. Dostosuj wcięcie (2 lub 4 spacje) według potrzeb.

  3. 3

    Kopiuj lub pobierz

    Kliknij Kopiuj, aby przenieść XML do schowka, lub Pobierz, aby zapisać jako plik .xml. Aby walidować lub ponownie sformatować wynik, wklej go do Formatowania XML.

Typowe problemy przy konwersji

Obiekt z wieloma kluczami otrzymuje nieoczekiwany kontener

Jeśli JSON najwyższego poziomu ma wiele kluczy, wyjście owija je wszystkie w . Jest to poprawny XML (który wymaga jednego elementu głównego), ale może nie pasować do docelowego schematu. Przekształć JSON do obiektu z jednym kluczem, aby kontrolować nazwę elementu głównego.

✗ Niepoprawne
// Input: { "status": 200, "data": { "id": 1 } }
// Output: <root><status>200</status><data><id>1</id></data></root>
// Root is <root> — may not match your schema
✓ Poprawne
// Wrap in a named key to control the root element
// Input: { "response": { "status": 200, "data": { "id": 1 } } }
// Output: <response><status>200</status><data><id>1</id></data></response>

Tablica najwyższego poziomu otrzymuje kontener

Tablica JSON najwyższego poziomu nie ma nazwy elementu, więc jest owijana jako .... Jeśli chcesz znaczących nazw znaczników, najpierw owiń tablicę w nazwany obiekt.

✗ Niepoprawne
// Input: [{ "id": 1 }, { "id": 2 }]
// Output: <root><item><id>1</id></item><item><id>2</id></item></root>
// Tag names are generic
✓ Poprawne
// Wrap in a named key for meaningful tag names
// Input: { "products": [{ "id": 1 }, { "id": 2 }] }
// Output: <root><products><id>1</id></products><products><id>2</id></products></root>
// Each array element reuses the key name "products" as its tag

Brakujący prefiks @_ dla kluczy atrybutów

Aby wyprodukować atrybut XML, klucz JSON musi mieć prefiks @_. Bez prefiksu klucz jest traktowany jako element podrzędny, nie atrybut.

✗ Niepoprawne
// Input: { "tag": { "id": "42", "name": "Alice" } }
// Output: <tag><id>42</id><name>Alice</name></tag>  ← id is a child element
✓ Poprawne
// Use @_ prefix for attributes
// Input: { "tag": { "@_id": "42", "name": "Alice" } }
// Output: <tag id="42"><name>Alice</name></tag>  ← id is an attribute

Element z atrybutami i tekstem — brakujący #text

Jeśli chcesz, aby element miał zarówno atrybuty XML, jak i treść tekstową, musisz użyć klucza #text dla tekstu. Bez niego tekst nie ma gdzie się znaleźć i element będzie pusty lub spowoduje błąd.

✗ Niepoprawne
// Input: { "price": { "@_currency": "USD", "value": "29.99" } }
// Output: <price currency="USD"><value>29.99</value></price>
// Text is a child element, not text content
✓ Poprawne
// Use #text for element text content
// Input: { "price": { "@_currency": "USD", "#text": "29.99" } }
// Output: <price currency="USD">29.99</price>  ← text content

Klucze JSON z nieprawidłowymi znakami XML

Nazwy elementów XML nie mogą zaczynać się od cyfry ani zawierać spacji, dwukropków (poza prefiksami przestrzeni nazw) ani większości znaków specjalnych. Jeśli klucze JSON zawierają te znaki, wynikowy XML będzie nieprawidłowy. Zmień nazwy problematycznych kluczy przed konwersją lub oczyść je w kroku po przetworzeniu.

✗ Niepoprawne
// JSON key starts with digit — invalid XML element name
// Input: { "1stItem": "value" }
// Output: <1stItem>value</1stItem>  ← invalid XML
✓ Poprawne
// Use a valid XML element name
// Input: { "firstItem": "value" }
// Output: <firstItem>value</firstItem>  ← valid XML

Znaki specjalne w wartościach nieescapowane

Treść tekstowa XML nie może zawierać surowych znaków <, >, &, ani " — muszą być escapowane jako <, >, & i ". Konwerter automatycznie escapuje te znaki w treści tekstowej elementów i wartościach atrybutów. Jeśli dalsze przetwarzanie podwójnie je escapuje, sprawdź, czy parser XML konsumuje surowe bajty XML, a nie ponownie escapuje już escapowaną zawartość.

✗ Niepoprawne
// JSON: { "query": "name = 'Alice' & role = 'admin'" }
// Converter outputs: <query>name = 'Alice' &amp; role = 'admin'</query>
// If double-processed: &amp;amp; — consumer is re-escaping
✓ Poprawne
// Converter output is correct — consume it as XML, not as a raw string
// <query>name = 'Alice' &amp; role = 'admin'</query>
// XML parser decodes to: name = 'Alice' & role = 'admin'

Typowe zastosowania

Wywoływanie SOAP i starszych usług webowych XML
Zbuduj ładunek JSON w aplikacji, przekonwertuj go na XML i wyślij POST na punkt końcowy SOAP. Pozwala to uniknąć ręcznego budowania ciągów XML i umożliwia pracę z danymi w natywnej strukturze JSON aż do momentu, gdy trzeba je serializować dla starszego serwisu.
Generowanie plików konfiguracyjnych XML
Spring, Maven, Ant, Tomcat i Android — wszystkie używają formatów konfiguracyjnych XML. Generuj lub transformuj dane konfiguracyjne jako JSON — łatwiejsze do porównywania i wersjonowania — a następnie konwertuj na XML do wdrożenia.
Tworzenie XML mapy strony i kanału RSS
Systemy zarządzania treścią i generatory stron statycznych często przechowują metadane stron jako JSON. Przekonwertuj te metadane na XML sitemap.xml lub kanał RSS do zgłaszania do wyszukiwarek lub syndykowania treści dla czytników kanałów.
Integracja danych korporacyjnych (EDI / ERP / CRM)
Systemy ERP (SAP, Oracle), platformy CRM i sieci EDI często wymieniają dane w XML. Przekonwertuj eksporty JSON z nowoczesnych REST API na XML, aby zasilać te systemy bez budowania niestandardowego serializatora XML.
Pliki zasobów Androida
Zasoby ciągów Androida, ograniczenia układów i wpisy manifestu to XML. Generuj lub aktualizuj pliki zasobów programatycznie ze źródeł danych JSON i konwertuj do wymaganego formatu XML dla systemu kompilacji Androida.
Generowanie SVG i grafiki wektorowej
SVG to XML. Buduj strukturę SVG jako dane JSON — ścieżki, kształty, kolory, transformacje — a następnie konwertuj na XML, aby tworzyć poprawne pliki SVG dla web, druku lub narzędzi do edycji wektorowej.

Szczegóły techniczne

Parsowanie JSON zgodne z RFC 8259
Dane wejściowe JSON są parsowane przy użyciu natywnego JSON.parse() przeglądarki, który jest w pełni zgodny z RFC 8259. Zapewnia to dokładne komunikaty błędów składni z informacją o pozycji (numer wiersza i kolumny, najlepsze przybliżenie) i obsługuje wszystkie typy danych JSON: ciągi znaków, liczby, wartości logiczne, null, tablice i obiekty.
Niestandardowy rekurencyjny serializator JSON na XML
Po sparsowaniu niestandardowy rekurencyjny serializator przechodzi drzewo JSON. Klucze obiektów zaczynające się od @_ są emitowane jako atrybuty XML na elemencie nadrzędnym. Klucz #text jest emitowany jako treść tekstowa elementu. Zwykłe klucze obiektów stają się elementami podrzędnymi. Wartości tablic produkują powtarzające się elementy siostrzane o tej samej nazwie. Znaki specjalne (<, >, &, ", ') w treści tekstowej i wartościach atrybutów są escapowane do ich referencji encji XML.
Normalizacja elementu głównego
Ponieważ XML wymaga dokładnie jednego elementu głównego, serializator stosuje normalizację elementu głównego przed budowaniem dokumentu: obiekty z jednym kluczem używają klucza jako elementu głównego; obiekty z wieloma kluczami i tablice najwyższego poziomu otrzymują syntetyczny kontener . Gwarantuje to, że wyjście jest zawsze poprawnym strukturalnie XML, niezależnie od kształtu wejścia.
100% w przeglądarce — bez przesyłania, bez serwera
Całe przetwarzanie odbywa się w silniku JavaScript przeglądarki. Żadne dane nie są przesyłane przez sieć w żadnym momencie. Dane wejściowe większe niż 200 KB automatycznie przełączają się z trybu na żywo na tryb ręczny (wymagający jawnego kliknięcia Konwertuj), aby utrzymać responsywność przeglądarki podczas intensywnej serializacji.

Dobre praktyki

Kontroluj element główny przez obiekt z jednym kluczem
Najczystszym sposobem na uzyskanie znaczącego XML jest upewnienie się, że JSON najwyższego poziomu jest obiektem z jednym kluczem, którego nazwa jest pożądaną nazwą elementu głównego. Owijanie danych z wieloma kluczami pod jedną nazwaną nazwą daje semantycznie znaczący element główny zamiast ogólnego kontenera .
Używaj @_ i #text dla XML z wieloma atrybutami
Jeśli docelowy schemat XML używa wielu atrybutów (powszechne w plikach konfiguracyjnych, SVG i kopertach SOAP), przekształć JSON do używania kluczy z prefiksem @_ i #text przed konwersją. Wynikowy XML będzie dokładnie pasować do docelowego schematu bez dalszego przetwarzania.
Owijaj tablice w nazwane obiekty dla znaczących nazw znaczników
Tablica najwyższego poziomu produkuje ogólny wzorzec ..., gdzie to stała dosłowna nazwa. Owijanie tablicy pod nazwanym kluczem — { "products": [...] } — produkuje powtarzające się elementy (nazwa klucza jest reużywana dla każdego elementu tablicy) pod kontenerem . Daje to domenowo znaczącą nazwę znacznika i jest prawie zawsze lepsze dla XML, który będzie parsowany lub walidowany przez schemat.
Waliduj wynik za pomocą Formatowania XML
Po konwersji wklej wynikowy XML do Formatowania XML, aby walidować poprawność strukturalną, sprawdzić wcięcia i zidentyfikować problemy strukturalne przed wysłaniem XML do dalszego serwisu lub zatwierdzeniem w systemie kontroli wersji.
Oczyść klucze JSON przed konwersją
Nazwy elementów XML muszą zaczynać się od litery lub podkreślenia i nie mogą zawierać spacji ani większości znaków specjalnych. Jeśli klucze JSON pochodzą z zewnętrznego źródła (nazwa kolumny bazy danych, nazwa pola API lub dane wejściowe użytkownika), sprawdź ich poprawność jako nazw XML przed konwersją, aby uniknąć nieprawidłowego wyjścia.

Najczęściej zadawane pytania

Czy dane JSON są wysyłane na serwer podczas korzystania z narzędzia?
Nie. Cała konwersja odbywa się wyłącznie w przeglądarce przy użyciu JavaScript. Dane JSON nigdy nie są przesyłane przez sieć, nie są przechowywane na żadnym serwerze ani rejestrowane czy analizowane. Narzędzie jest bezpieczne do użytku z ładunkami JSON zawierającymi dane uwierzytelniające API, konfigurację bazy danych, dane wewnętrznych serwisów lub inne wrażliwe treści. Można to zweryfikować, otwierając zakładkę Sieć w przeglądarce — wklejenie lub konwersja JSON nie wyzwoli żadnych żądań sieciowych.
Jak narzędzie decyduje, co jest elementem głównym XML?
XML wymaga dokładnie jednego elementu głównego; JSON nie ma takiego ograniczenia. Konwerter stosuje następujące reguły: (1) Obiekt z jednym kluczem używa tego klucza jako nazwy elementu głównego — { "user": { ... } } staje się .... (2) Obiekt z wieloma kluczami (dwa lub więcej kluczy na najwyższym poziomie) jest owijany w element , dzięki czemu wszystkie klucze stają się podrzędnymi jednego elementu głównego. (3) Tablica najwyższego poziomu jest owijana jako ..., gdzie każdy element tablicy staje się podrzędnym elementem . (4) Prymitywna wartość (ciąg, liczba, logiczna, null) na najwyższym poziomie staje się wartość. Te reguły gwarantują, że wyjście jest zawsze poprawnym strukturalnie XML z dokładnie jednym elementem głównym.
Dlaczego obiekt JSON z wieloma kluczami jest owijany w ?
XML jest formatem dokumentu z surowym wymogiem pojedynczego elementu głównego — poprawny dokument XML musi mieć dokładnie jeden element najwyższego poziomu. Obiekty JSON mogą mieć dowolną liczbę kluczy najwyższego poziomu, więc gdy JSON ma wiele kluczy najwyższego poziomu (np. { "status": 200, "data": {...}, "meta": {...} }), nie ma jednego klucza do użycia jako element główny. Owijanie w to najbezpieczniejsza i najbardziej przewidywalna konwencja. Jeśli chcesz innej nazwy elementu głównego, przekształć JSON do obiektu z jednym kluczem przed konwersją — np. { "response": { "status": 200, "data": {...} } }.
Jak tablica JSON najwyższego poziomu konwertuje się na XML?
Tablica najwyższego poziomu jest owijana jako ....... Każdy element tablicy staje się podrzędnym elementem — «item» to stała dosłowna nazwa używana tylko dla tablic najwyższego poziomu. Różni się to od tablic zagnieżdżonych pod kluczem obiektu: jeśli piszesz { "products": [...] }, każdy element tablicy staje się elementem (reużywając nazwy klucza), a nie . Jeśli chcesz własnych nazw znaczników dla tablicy najwyższego poziomu, owiń ją w nazwany obiekt: { "products": [...] } daje powtarzające się elementy .
Jak przekonwertować klucze JSON na atrybuty XML?
Dodaj do klucza prefiks @_, a konwerter wyemituje go jako atrybut XML zamiast elementu podrzędnego. Na przykład { "tag": { "@_id": "42", "@_lang": "en", "#text": "Hello" } } produkuje Hello. Konwencja prefiksu @_ to ta sama, której używają fast-xml-parser (Node.js) i xmltodict (Python), dzięki czemu wyjście spójnie współdziała z tymi bibliotekami. Jest to też konwencja używana przez towarzyszący Konwerter XML na JSON.
Do czego służy klucz #text?
Gdy element musi mieć zarówno atrybuty XML, jak i treść tekstową, nie można po prostu mapować tekstu na element podrzędny — musi to być własny węzeł tekstowy elementu. Klucz #text w JSON staje się tą treścią tekstową. Przykład: { "price": { "@_currency": "USD", "#text": "29.99" } } produkuje 29.99. Jeśli obiekt ma tylko klucz #text i żadnych kluczy @_, nadal produkuje zwykły element tekstowy: { "note": { "#text": "hello" } } staje się hello.
Czy wcięcia wpływają na strukturę XML?
Nie. Wcięcia są czysto kosmetyczne — zmieniają sposób formatowania XML dla czytelności przez człowieka, ale nie wpływają na strukturę elementów, wartości atrybutów ani treść tekstową. Wybierz 2 spacje dla zwartego wyjścia lub 4 spacje dla bardziej czytelnego wyjścia. Oba produkują semantycznie identyczny XML. Większość parserów XML traktuje węzły tekstowe zawierające tylko białe znaki między elementami jako ignorowalne białe znaki, więc wcięty i zminimalizowany XML są równoważne dla celów parsowania.
Jak tablica JSON zagnieżdżona wewnątrz obiektu konwertuje się na XML?
Wartość tablicy JSON pod kluczem produkuje powtarzające się elementy podrzędne o tej samej nazwie, reużywając nazwy klucza dla każdego elementu. Na przykład { "items": [1, 2, 3] } produkuje trzy elementy siostrzane — nie . Podobnie { "products": [{"name":"A"},{"name":"B"}] } produkuje dwa elementy , każdy zawierający podrzędny element . Nazwa klucza jest używana bez zmian dla każdego elementu tablicy; nie ma singularyzacji. Jedyne miejsce, gdzie pojawia się dosłowna nazwa , to gdy całe wejście JSON jest tablicą najwyższego poziomu (patrz wyżej), gdzie to stała zapasowa nazwa kontenera używana tylko w tym przypadku.
Jak przekonwertować XML z powrotem na JSON?
Użyj narzędzia towarzyszącego Konwerter XML na JSON. Stosuje te same konwencje @_ i #text w odwrotnej kolejności: atrybuty XML stają się kluczami JSON z prefiksem @_, treść tekstowa elementu sparowana z atrybutami staje się kluczem #text, a powtarzające się elementy siostrzane o tej samej nazwie stają się tablicą JSON. Oba narzędzia są symetryczne dla przypadków użycia z konwersją w obie strony.
Czy mogę walidować lub formatować wynikowy XML?
Tak — wklej wynikowy XML do Formatowania XML, aby walidować poprawność strukturalną, dostosować wcięcia lub zminimalizować. Formatowanie XML to właściwe narzędzie do inspekcji i dopracowania XML po tym, jak ten konwerter go wyprodukował.
Czy istnieje limit rozmiaru danych wejściowych JSON?
Nie ma twardego limitu, ale dane wejściowe większe niż 200 KB automatycznie przełączają się z konwersji na żywo na tryb ręczny. W trybie ręcznym pojawia się przycisk Konwertuj i konwersja uruchamia się tylko po jego kliknięciu — dzięki temu przeglądarka pozostaje responsywna podczas intensywnej serializacji. Dla bardzo dużych plików JSON (wielomegabajtowych) rozważ narzędzia wiersza poleceń dla lepszej wydajności: node -e "const {XMLBuilder}=require('fast-xml-parser');console.log(new XMLBuilder({attributeNamePrefix:'@_'}).build(JSON.parse(require('fs').readFileSync('in.json','utf8'))))" lub równoważny skrypt Python z xmltodict.
Jakie typy JSON są obsługiwane?
Obsługiwane są wszystkie sześć typów JSON. Obiekty stają się elementami XML z elementami podrzędnymi. Tablice stają się powtarzającymi się elementami siostrzanymi o tej samej nazwie. Ciągi, liczby, wartości logiczne i null stają się treścią tekstową elementów. Wartości logiczne i null są serializowane jako ich dosłowne reprezentacje ciągów: true, false i pusta treść dla null. Nie jest stosowane żadne wymuszanie typów — liczby są zapisywane w treści tekstowej XML dokładnie tak jak pojawiają się w JSON, zachowując dziesiętne i precyzję.

Powiązane narzędzia

Zobacz wszystkie narzędzia →