Преобразовать JSON в XML JavaScript Object Notation ↔ Extensible Markup Language Бесплатно Онлайн Безопасно
Положите файл JSON и заберите XML. Чтение и запись происходят здесь, в вашем браузере, поэтому файл не покидает устройство — а что переход сохраняет и чего не может, написано ниже, а не оставлено вам на обнаружение.
Преобразуйте свой файл
Перетащите сюда файл JSON или выберите его.
Ваш файл не покидает это устройство. Всё работает в вашем браузере.
Ничего не загружается
Конвертировать из JSON
Конвертировать в JSON
Откуда взялись эти форматы
CSV — самый старый и наименее стандартизованный: таблица, записанная строками текста; в ходу с 1970-х, а описан на бумаге лишь в 2005-м, когда каждая программа уже сама решила, что считать разделителем и когда ставить кавычки. XML вырос из SGML в 1998 году — для документов, которые должны нести строгую структуру и проверяться по схеме. JSON вытащил из JavaScript Дуглас Крокфорд около 2001 года, намеренно сведя его к объектам, спискам, числам и строкам, — и этот аскетизм и есть причина, по которой он завоевал веб. YAML — его читаемый родственник, где отступ делает работу, которую в других местах делают скобки. При переводе между ними важно одно: CSV плоский, это сетка строк и столбцов, тогда как JSON, XML и YAML — деревья.
Где они встречаются
CSV — то, что выгружает электронная таблица и что подают вам бухгалтер, торговая площадка или выписка из банка. JSON — то, на чём говорят веб-службы и на чём всё чаще пишут файлы настроек. XML держится в старых корпоративных системах, в стандартах выставления счетов и внутри самих офисных форматов. YAML — там, где люди пишут настройки руками. Перевод между ними — ежедневная работа по переносу данных оттуда, где они возникли, туда, где они нужны.
Частые вопросы
Мой CSV открылся в Excel одним столбцом. Почему?
Потому что таблица ждала другого разделителя. Excel следует разделителю списков из региональных настроек, а это точка с запятой всюду, где запятая уже служит десятичным знаком, — то есть в большей части континентальной Европы. Файл, разделённый запятыми, тогда выглядит одним текстовым столбцом. Воспользуйтесь окном импорта и укажите разделитель явно, вместо того чтобы открывать файл двойным щелчком. Та же региональная настройка объясняет, почему 3.5 иногда приходит датой.
Почему мой вложенный JSON не становится опрятной таблицей?
Потому что таблица плоская, а JSON — дерево. Строка держит по одному значению на столбец; объект JSON может держать список внутри поля внутри другого списка. Перевод означает выбор, как это расплющить: либо склеить вложенные имена в один длинный заголовок столбца, либо повторить родительскую строку по разу на каждого потомка. И то и другое — уступка, и ни одну нельзя отменить самостоятельно: потому возвращение от таблицы к исходной форме обычно требует человеческого решения.
Теряет ли файл в качестве?
Смотря что способны вместить оба формата. Перевод между форматами, которые хранят одно и то же, — PNG в BMP, WAV в FLAC — не теряет ничего. Перевод в формат, который отбрасывает сведения ради экономии места, вроде JPEG или MP3, каждый раз теряет немного, и обратный перевод их не вернёт. Где есть выбор, эта страница склоняется к сохранению исходного качества, а не к самому маленькому файлу.
Мой файл куда-нибудь отправляется?
Нет. Преобразование происходит внутри вашего браузера, на вашей же машине; файл её не покидает, да и некуда — здесь нет сервера, который мог бы его принять. Потому большой файл ограничен вашей собственной памятью, а не отправкой; и потому ничто из преобразованного вами не может попасть в чьи-либо журналы, в том числе в наши. Средства для звука и видео всё же забирают свой преобразующий механизм с этого сайта при первом обращении — около тридцати мегабайт, один раз; дальше работа по-прежнему идёт целиком на вашей машине.
Почему люди конвертируют JSON в XML
JSON — язык современного веб-кода: лёгкий, читаемый и понятный каждому языку программирования. XML — более старый и формальный собрат, записываемый тегами, которые открываются и закрываются, и он по-прежнему обязательный формат в удивительном числе мест. Бухгалтерские программы, налоговые и таможенные системы, платформы государственных закупок, товарные фиды, издательские процессы, корпоративное программное обеспечение и длинный список старых веб-сервисов ожидают XML. Когда ваши данные в JSON, а система, которая должна их получить, говорит на XML, нужна конвертация. Поэтому люди и конвертируют JSON в XML: информация у них в одной форме, а получатель требует другую.
Ситуации обычные. Разработчик, которому нужно отправить данные из современного приложения в сервис, построенный годы назад. Магазин, экспортирующий товары как JSON и обязанный передать фид торговой площадке, которой нужен XML. Команда, которой нужна конфигурация в форме разметки, предпочитаемой инструментом. Студент, желающий увидеть, как те же данные выглядят в обеих нотациях. Во всех случаях содержимое готово, и отличается только нотация.
Эта страница конвертирует JSON в XML в вашем браузере. Ваш файл читается и записывается здесь, поэтому он никогда не покидает ваше устройство, что важно для заказов, счетов и всего прочего личного. И страница заранее сообщает, что при переходе сохраняется, а что нет, вместо того чтобы оставлять вас открывать это самим. Ниже вы найдёте, как работает конвертация, как обрабатываются имена, списки и атрибуты и что делать с ключами, которые XML принять не может.
Как работает конвертация
Переносится всё дерево
Ваш файл JSON считывается внутри браузера, и всё дерево записывается как XML. Объекты становятся элементами, их ключи становятся именами дочерних элементов, а значения — текстом внутри. Вложенность в JSON — это вложенность в XML, так что форма, которую вы видите в фигурных скобках, — это форма, которую вы получаете в тегах.
Документ называется по единственному ключу
XML-документу нужен ровно один корневой элемент. Если у вашего объекта JSON один ключ, этот ключ называет документ. Это удобный случай: файл XML, переведённый в JSON и обратно, выглядит как сам себя, потому что корневой элемент становится единственным ключом и возвращается как корневой элемент. Если у вашего JSON на верхнем уровне несколько ключей, конвертер заключает их в корневой элемент, чтобы результат был корректно оформлен.
Списки повторяют элемент
Массив повторяет свой элемент. Ключ products, содержащий список из трёх записей, даёт три элемента product один за другим, так XML выражает список. Порядок сохраняется.
Что сохраняется
Всё дерево
Переносятся каждый объект, каждый список и каждое значение. Ничего не отбрасывается, а вложенность — это вложенность оригинала.
Атрибуты через @
Ключ, начинающийся с @, становится атрибутом. Запись с ключом @id и ключом name даёт элемент с атрибутом id и дочерним элементом name. Это то же соглашение, которое используется в обратной конвертации, поэтому XML, переведённый в JSON и обратно, сохраняет свои атрибуты.
Порядок
Ключи сохраняют порядок, в котором они появились в JSON, поэтому элементы в XML следуют последовательности источника.
Что нужно знать, прежде чем конвертировать JSON в XML
Любой ключ JSON может быть словом; имя в XML — нет
Любой ключ JSON может быть словом, числом или фразой с пробелами. Имя элемента XML — нет: оно должно начинаться с буквы или подчёркивания и может содержать буквы, цифры, дефисы, подчёркивания и точки, но не пробелы. Ключ, не являющийся допустимым именем, не искажается до него. Он становится элементом item с атрибутом name, записанным как item name="исходный ключ", так что оригинал по-прежнему в файле и по-прежнему находим. Ничто не переименовывается молча.
Нет пространств имён и нет схемы
Пространства имён не используются, и схема не назначается. Результат корректно оформлен, но не проверен. Он будет прочитан любым читателем XML, но удовлетворяет ли он конкретной структуре, которой требует налоговая система или торговая площадка, — отдельный вопрос, и ответить на него может только принимающая сторона. Если схема требует определённых имён элементов, вам нужно будет заранее привести ключи JSON в соответствие с ними.
Значения — это текст
В XML нет типов: каждое значение в тегах — текст. Числа, true, false и null записываются своим текстом. Программа, читающая XML, должна интерпретировать их по своему усмотрению.
Как конвертировать JSON в XML здесь
Добавьте файл
Перетащите файл JSON на страницу или выберите его на устройстве. Он считывается внутри вашего браузера и не загружается.
Конвертируйте
Нажмите кнопку. Файл обычного размера занимает мгновение. Оставляйте страницу открытой, пока всё не завершится.
Скачайте и проверьте
Скачайте XML и откройте его в текстовом редакторе или браузере. Посмотрите на начало и конец и проверьте, что имена элементов такие, как вы ожидаете, и что атрибуты появляются там, где вы задумали.
Подробнее о JSON и XML
Два способа записать дерево
И JSON, и XML описывают дерево значений. JSON записывает его скобками и знает только объекты, списки, строки, числа, булевы значения и null. XML записывает его тегами, которые открываются и закрываются, и добавляет атрибуты, пространства имён и смешанное содержимое. Они хорошо пересекаются для данных, таких как записи и настройки, и плохо — для документов, где текст и разметка переплетены.
Почему соглашения важны
В JSON нет атрибутов, корневого элемента и понятия повторения элемента. Поэтому любой конвертации нужны соглашения: @ для атрибутов, единственный ключ для корня, повторение элементов для списков. Используемые здесь соглашения просты и последовательны и совпадают с теми, что применяются при переходе из XML в JSON, что и позволяет двустороннему переходу работать в обычных случаях.
Пустые значения
Пустая строка и null оба превращаются в пустой элемент. Если разница важна для принимающей системы, пометьте её в данных перед тем, как конвертировать JSON в XML, например отдельным флагом.
Типичные ситуации подробно
Фиды для торговых площадок и сайтов сравнения
Многие платформы просят товарные фиды в XML. Если программа вашего магазина экспортирует JSON, конвертируйте JSON в XML, проверьте имена элементов по спецификации платформы и загружайте.
Старые сервисы и корпоративные системы
Системы, построенные в эпоху SOAP и ранних API, ожидают XML. Современное приложение может создавать JSON и конвертировать его для них.
Конфигурация для инструментов, предпочитающих XML
Некоторые инструменты сборки, системы управления контентом и настольные программы читают настройки из XML. Конфигурацию, записанную как JSON, можно превратить в нужную им форму.
Обучение и сравнение
Увидеть те же данные в обеих нотациях — хороший способ понять, чем они различаются. Вставьте небольшой JSON, конвертируйте его и сравните два рядом.
Практические советы перед тем, как конвертировать JSON в XML
Проверьте, что JSON корректен
Лишняя запятая или пропущенная кавычка остановят конвертацию. Если страница сообщает об ошибке, откройте файл в редакторе, подсвечивающем проблемы JSON, и исправьте строку, на которую он указывает.
Сделайте ключи допустимыми именами элементов
Если вы знаете, что XML будут проверять по схеме, используйте ключи, являющиеся допустимыми именами и соответствующие схеме. Иначе конвертер сохранит их безопасно как элементы item, что правильно, но может не соответствовать ожиданиям получателя.
Выберите единственный ключ верхнего уровня
Если вы хотите, чтобы корневой элемент вашего XML имел определённое имя, заключите данные в объект с этим единственным ключом, прежде чем конвертировать JSON в XML.
Большие файлы
Всё выполняется на вашем устройстве, поэтому очень большому файлу нужна память. Для файлов в много мегабайт используйте компьютер и разделите данные, если страница не справляется.
Вопросы, которые задают перед конвертацией
Что называет корневой элемент?
Объект с единственным ключом называет документ по этому ключу.
Как получить атрибут?
Начните ключ с @. Он станет атрибутом элемента.
Что происходит с ключом с пробелом?
Это недопустимое имя элемента, поэтому он становится элементом item с атрибутом name, содержащим исходный ключ. Ничего не теряется.
Пройдёт ли XML проверку по схеме?
Результат корректно оформлен, но не проверен. Соответствует ли он данной схеме, зависит от ваших имён элементов и структуры.
Загружается ли мой файл?
Нет. Конвертация выполняется в вашем браузере, и файл никогда не покидает ваше устройство.
Можно ли вернуться к JSON?
Да. XML в JSON читает дерево XML обратно с теми же соглашениями для атрибутов.
Разумный выбор при конвертации JSON в XML
Действительно ли нужен XML?
Если принимающая система принимает JSON, используйте JSON. Конвертируйте, только когда требуется XML.
Другие цели
Для конфигурации, которую редактируют люди, удобнее читается JSON в YAML. Для таблиц JSON в CSV и JSON в XLSX служат электронным таблицам.
Сохраните JSON
JSON — это мастер. Он хранит типы. Сохраните его и относитесь к XML как к копии, сделанной для конкретного получателя.
Как добиться хорошего результата после конвертации
Откройте в браузере
Браузер показывает XML как сворачиваемое дерево. Откройте файл и разверните элементы. Если структура выглядит так, как вы ожидаете, она надёжна.
Сравните несколько записей с источником
Возьмите несколько записей из середины и сверьте их с JSON. Это занимает минуту и говорит, что конвертация верна.
Добавьте то, что нужно получателю
Если получатель просит строку объявления, пространство имён или ссылку на таблицу стилей, добавьте их в текстовом редакторе. Они не часть данных и для вас не записываются.
Подготовка JSON для хорошей конвертации
Используйте регулярные структуры
Когда вы конвертируете JSON в XML, лучше всего конвертируются регулярные данные: списки записей с одинаковыми ключами, каждый ключ — допустимое имя. Нерегулярные данные дают правильный, но неопрятный результат.
Решите, что является атрибутом
Идентификаторы, коды и флаги часто бывают атрибутами в XML. Пометьте их в JSON символом @, и результат будет выглядеть как XML, написанный человеком.
Сначала проверьте на небольшом фрагменте
Если ваш файл велик, возьмите первые записи в тестовый файл и конвертируйте его. Быстрый взгляд на результат показывает, соответствует ли форма ожиданиям.
Как привести XML в соответствие с получателем
Сначала посмотрите спецификацию
Прежде чем конвертировать JSON в XML для торговой площадки, налогового портала или партнёра, прочтите, что они просят. Большинство публикует описание ожидаемых элементов, их порядка и обязательности. Согласование имён ваших ключей с ним стоит нескольких минут в JSON и избавляет от неудачной загрузки позже.
Порядок может иметь значение
Некоторые схемы XML требуют элементов в фиксированном порядке. Конвертер сохраняет порядок ваших ключей, поэтому если получатель настаивает на последовательности, пишите ключи JSON в этой последовательности. Результат следует именно тому, что вы написали.
Добавьте объявление, если оно требуется
Строка вверху, указывающая версию и кодировку, — обычное дело, и некоторые получатели на ней настаивают. Она не часть данных, поэтому для вас не записывается. Добавьте её вручную в текстовом редакторе перед первым элементом.
Следите за специальными символами
Амперсанды, угловые скобки и кавычки внутри значений записываются в экранированных формах, так что XML остаётся корректным, что бы ни содержал текст. Готовить их в JSON не нужно.
Храните образец, который был принят
Когда получатель принимает файл, сохраните копию этого точного файла и JSON, который его создал. Когда более поздняя загрузка не удаётся, сравнение с тем, что сработал, сразу находит разницу.
Повторяйте конвертацию, а не правьте вручную
Когда данные меняются, меняйте JSON и снова конвертируйте JSON в XML. Правка XML вручную оставляет две версии, расходящиеся друг от друга.
Конфиденциальность и обработка
Почему локальная конвертация важна для данных
Файлы данных часто содержат личное: клиентов, заказы, счета, настройки. Многие онлайн-конвертеры загружают ваш файл на сервер, обрабатывают его и присылают результат, и некоторое время копия живёт на машине, которую вы не контролируете. Здесь работу выполняет ваш собственный браузер, поэтому данные остаются на вашем устройстве.
Что происходит, когда вы уходите
Когда вы закрываете страницу, конвертированный файл исчезает из браузера, поэтому сначала скачайте его. Ничего о ваших данных не сохраняется.
Если что-то пошло не так
Страница говорит, что файл не является корректным JSON
Возможно, есть лишняя запятая, пропущенная кавычка или не закрывающаяся скобка. Откройте файл в редакторе, подсвечивающем ошибки JSON, и исправьте строку, на которую он указывает.
Получатель отклоняет XML
Результат корректно оформлен, но не проверен. Сравните его со спецификацией получателя и скорректируйте имена ключей и структуру JSON.
Страница зависает с большим файлом
Всё выполняется на вашем устройстве, а большому файлу нужна память. Попробуйте снова на компьютере или разделите данные.
Связанные инструменты
То же семейство инструментов охватывает соседние задачи. Чтобы вернуться, используйте XML в JSON. Для файлов конфигурации JSON в YAML и YAML в JSON конвертируют между этими двумя. Для таблиц есть JSON в CSV, CSV в JSON, JSON в XLSX и XLSX в JSON.
Разобранный пример
Допустим, программа вашего магазина экспортирует 300 товаров как JSON, а торговая площадка просит фид XML с корневым элементом catalogue. Вы заключаете свой список в объект с единственным ключом catalogue, перетаскиваете файл сюда и нажимаете кнопку. Через мгновение вы скачиваете XML, корень которого — catalogue и который содержит 300 элементов product, у каждого из которых id — атрибут, потому что вы написали ключ как @id. Вы загружаете фид, и площадка его принимает. JSON остаётся в вашей папке как источник.
Краткий чек-лист
Перед конвертацией
Проверьте, что JSON корректен. Выберите имя корня. Пометьте атрибуты символом @. Сохраните JSON.
Во время конвертации
Оставайтесь на странице, пока файл не будет готов.
После конвертации
Откройте XML, проверьте имена элементов, атрибуты и списки и протестируйте у получателя.
Типичные ошибки
Предположение, что результат проверен
XML корректно оформлен, но не проверен ни по какой схеме. Проверьте его по правилам получателя.
Использование ключей с пробелами или символами
Они становятся элементами item с атрибутом name. Используйте допустимые имена, если получатель их ожидает.
Удаление JSON
Сохраните его. Он хранит типы, которых нет в XML.
Ваши данные остаются на вашем устройстве
Конвертация происходит локально. Ваш файл считывается вашим браузером, там же переписывается и возвращается как XML. Ничего не загружается, поэтому копия не оказывается на сервере, и никто другой не может её прочитать. Для данных с личным содержимым это безопасный способ конвертировать JSON в XML.
Итог
Чтобы конвертировать JSON в XML здесь, перетащите файл и нажмите кнопку. Он считывается и записывается в вашем браузере, поэтому файл никогда не покидает ваше устройство. Сохраняется всё дерево. Объект с единственным ключом называет документ по этому ключу, так что файл XML, переведённый в JSON и обратно, выглядит как сам себя; массив повторяет свой элемент; ключ, начинающийся с @, становится атрибутом. Любой ключ JSON может быть словом; имя элемента XML — нет. Ключ, не являющийся допустимым именем, не искажается до него: он становится элементом item с атрибутом name, так что оригинал по-прежнему в файле и по-прежнему находим. Пространства имён не используются, и схема не назначается: результат корректно оформлен, но не проверен.