Конвертируйте JSON в XML формат
Коротко об инструменте
XML до сих пор живёт там, где обмен настроен годами: выгрузки для 1С, прайс-листы маркетплейсов, интеграции по SOAP и старые импортёры, которые ничего другого не принимают. Конвертер строит из JSON дерево тегов — ключи превращаются в имена элементов, вложенные объекты в узлы, а массивы в повторяющиеся теги. Рядом с кнопкой «Копировать XML» есть «Скачать XML»: файл собирается и сохраняется на вашей стороне, выгрузка при этом никуда не передаётся. Смотрите также: разобрать XML обратно в JSON, выровнять отступы в готовом XML, получить тот же объект в YAML для конфига.
Имена тегов страница чинит сама: недопустимый символ заменяется подчёркиванием, ключ с цифры получает подчёркивание в начале, и каждое переименование названо в строке статуса. Так что ключи «2024» и «Дата заказа» дадут валидный документ, но с изменёнными именами — сверьте их со схемой принимающей системы. Если валидатор всё же ругается, причина обычно в самой схеме: обязательный порядок элементов, пространство имён или тип значения.
Да. Положите их в ключ @attributes — его содержимое станет атрибутами тега, а не вложенными элементами: {"offer":{"@attributes":{"id":"A-1"},"#text":"Ноутбук"}} даст Ноутбук. Ключ #text задаёт собственный текст элемента. Остальные поля по-прежнему становятся вложенными тегами, а в значениях атрибутов экранируются кавычки и апострофы.
Каждый элемент массива выводится отдельным тегом с тем же именем, что и ключ массива, — получается серия одноимённых узлов подряд. Это стандартный для XML способ хранить список. Обратите внимание, что при обратном разборе одиночный элемент такого списка перестаёт выглядеть массивом: в XML нет способа отличить список из одного узла от простого поля.
Смотрите на первую строку вывода: если объявления вида нет, а импортёр его требует, допишите строку вручную перед загрузкой файла. Второе требование строгих парсеров — единственный корневой элемент. Массив на верхнем уровне даёт несколько узлов подряд, и такой документ нужно обернуть в общий тег.
Эти символы в тексте XML имеют служебное значение, поэтому корректный вывод заменяет их на сущности <, > и &. Обязательно проверьте описания товаров и любые поля с фрагментами HTML: если знаки остались как есть, документ развалится при разборе. Спорные места безопаснее обернуть в секцию CDATA вручную.
Никуда: и сборку дерева, и формирование файла для кнопки «Скачать XML» выполняет скрипт внутри страницы. Файл создаётся в памяти браузера и сохраняется обычным диалогом загрузки, минуя сервер. Поэтому прайс-лист с закупочными ценами или внутреннюю выгрузку здесь можно конвертировать, не согласовывая передачу данных наружу.
До: {"offer": {"id": "A-1", "name": "Kreslo", "price": 8900}} После: A-1 Kreslo 8900
До: {"tags": ["sale", "new"]} После: sale new
Оценка и фидбек помогают понять, что улучшать дальше.