Utilia

Конвертор от JSON в XML

Конвертирайте JSON в XML и XML в JSON във вашия браузър, с атрибути, повтарящи се елементи и CDATA. Нищо не се качва на сървър.

Конвертиране

Как да използвате конвертора от JSON в XML

  1. Изберете посоката: JSON → XML или XML → JSON.
  2. Поставете данните си или щракнете Отвори файл, за да заредите файл .json или .xml (до 10 МБ).
  3. Задайте опциите: Отстъп (2 интервала, 4 интервала, табулация или Без (компактно)) и за двете посоки; Коренов елемент и Добави XML декларацията за JSON → XML; Конвертирай числата и булевите стойности за XML → JSON.
  4. Щракнете Конвертирай. Резултатът се обновява и докато пишете, а грешките показват реда и колоната, където е открит проблемът.
  5. Копирайте или изтеглете резултата. Обърни посоката връща изхода във входа, за да проверите двупосочното преобразуване.

Как JSON се съпоставя с XML

XML и JSON нямат един и същ модел на данни, затова всеки конвертор следва конвенция. Този инструмент използва широко разпространената от библиотеката fast-xml-parser:

JSON XML
{"title": "Dune"} <title>Dune</title>
{"book": {"@id": "42"}} <book id="42"/>
{"p": {"@lang": "bg", "#text": "Здравей"}} <p lang="bg">Здравей</p>
{"tag": ["a", "b"]} <tag>a</tag><tag>b</tag>
  • Ключовете, които започват с @, стават атрибути, а ключът #text съдържа текста на елемент, който има и атрибути.
  • Масив става повтарящ се елемент със същото име.
  • XML документът изисква точно един коренов елемент. Ако JSON е обект с един-единствен ключ, чиято стойност е обект, този ключ става корен. Иначе цялата стойност се обвива в елемента, посочен в Коренов елемент (по подразбиране root), а елементите на масив от най-горно ниво стават елементи <item>.
  • Ключовете, които не са валидни имена в XML, се поправят: интервалите и символите стават _, а име, започващо с цифра, получава водещо _ ("1st place" → <_1st_place>).
  • null и празните низове дават празен елемент като <note/>. Специалните символи (&, <, >, кавички) се екранират.

Как XML се съпоставя с JSON

  • Атрибутите стават ключове с префикс @, а смесеният текст става #text.
  • Повтарящите се елементи стават масив; елемент, който се появява веднъж, става единична стойност.
  • CDATA секциите се сливат в текста, а ентититата като &amp; се декодират. XML декларацията, инструкциите за обработка и коментарите се отхвърлят.
  • При Конвертирай числата и булевите стойности <price>12.5</price> става 12.5, а true става булева стойност, докато стойности с водеща нула, като 007, остават низове. Изключете опцията, за да запазите всяка стойност като текст.

Преди конвертирането XML се проверява за правилна форма: липсващ затварящ таг, несъответстващ таг или неекраниран & се съобщават с реда и колоната си.

Често задавани въпроси

Изпращат ли се данните ми към сървър?

Не. Конвертирането се изпълнява изцяло във вашия браузър. XML каналите, SOAP съобщенията и конфигурационните ви файлове остават на компютъра ви.

Защо един елемент става масив в един файл и обект в друг?

XML не казва дали елементът е списък. Когато <tag> се появи два пъти, става масив; когато се появи веднъж, е единична стойност. Ако кодът ви очаква масив, обработете и двата случая или добавете втори елемент при тестване.

Защо двупосочното преобразуване не винаги е идентично?

Част от информацията няма еквивалент от другата страна: коментари, редът на смесеното съдържание или разликата между масив с един елемент и единична стойност. При типични документи с данни преобразуването JSON → XML → JSON връща същата структура.

Мога ли да използвам пространства от имена?

Да. Имена с префикс като soap:Envelope и атрибути като @xmlns:soap се запазват както са и в двете посоки.

Валидира ли спрямо XSD схема?

Не. Проверява дали XML е с правилна форма, но не го валидира спрямо DTD или XSD схема.