Преобразовать XML в JSON Extensible Markup Language ↔ JavaScript Object Notation Бесплатно Онлайн Безопасно
Положите файл XML и заберите JSON. Чтение и запись происходят здесь, в вашем браузере, поэтому файл не покидает устройство — а что переход сохраняет и чего не может, написано ниже, а не оставлено вам на обнаружение.
Преобразуйте свой файл
Перетащите сюда файл XML или выберите его.
Ваш файл не покидает это устройство. Всё работает в вашем браузере.
Ничего не загружается
Конвертировать из XML
Конвертировать в XML
Откуда взялись эти форматы
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, каждый раз теряет немного, и обратный перевод их не вернёт. Где есть выбор, эта страница склоняется к сохранению исходного качества, а не к самому маленькому файлу.
Мой файл куда-нибудь отправляется?
Нет. Преобразование происходит внутри вашего браузера, на вашей же машине; файл её не покидает, да и некуда — здесь нет сервера, который мог бы его принять. Потому большой файл ограничен вашей собственной памятью, а не отправкой; и потому ничто из преобразованного вами не может попасть в чьи-либо журналы, в том числе в наши. Средства для звука и видео всё же забирают свой преобразующий механизм с этого сайта при первом обращении — около тридцати мегабайт, один раз; дальше работа по-прежнему идёт целиком на вашей машине.
Зачем люди конвертируют XML в JSON
XML — старейшина структурированных данных. Более двадцати лет он носит файлы конфигурации, товарные фиды, счета, карты сайтов, новостные ленты, выгрузки из бухгалтерских программ и ответы старых веб-сервисов. Он точен и многословен, написан тегами, которые открываются и закрываются. JSON — его более молодой соперник: легче, проще для чтения и естественный язык современного веб-кода, где программа может использовать его почти без подготовки. Когда фид или выгрузка приходят как XML, а то, что будет их использовать, говорит на JSON, нужна конвертация. Поэтому люди конвертируют XML в JSON: данные у них в старой форме, а новые инструменты хотят новую.
Ситуации распространённые. Разработчик, которому нужно прочитать ответ старого сервиса в современном скрипте. Владелец магазина, у которого товарный фид в XML, а платформа импортирует JSON. Аналитик данных, который хочет посмотреть крупную выгрузку в инструменте, работающем с JSON. Студент, которому нужно разобраться в файле, полном угловых скобок. В каждом случае информация есть, а не хватает лишь более удобной формы.
Эта страница конвертирует XML в JSON в вашем браузере. Ваш файл читается и записывается здесь, поэтому он никогда не покидает ваше устройство, и это важно для счетов, данных клиентов и всего остального личного. И страница заранее говорит вам, что переход сохраняет и чего не может, а не оставляет вас открывать это самостоятельно. В XML есть идея, для которой у JSON нет слова, и её понимание избавит вас от сюрпризов. Ниже вы найдёте, как работает преобразование и чего ожидать.
Как работает преобразование
Элементы становятся ключами, вложенность остаётся вложенностью
Ваш XML читается внутри вашего браузера. Имена элементов становятся ключами, а элементы внутри элементов становятся объектами внутри объектов, так что вложенность XML — это вложенность JSON. Структура, которую вы видите в тегах, — это структура, которую вы получаете в фигурных скобках.
Атрибуты сохраняют имя с @
Элементы XML могут нести атрибуты, небольшие порции данных, записанные внутри открывающего тега. В JSON атрибутов нет, поэтому каждый сохраняется как отдельный ключ с @ перед именем. Элемент вроде book с атрибутом id даст ключ @id рядом с ключами его дочерних элементов. @ ясно показывает, какие ключи пришли из атрибутов, а какие из элементов.
Текст рядом с дочерними элементами
Текст, делящий элемент с дочерними элементами, сохраняется под #text, потому что больше его некуда поместить. Это редко в файлах данных и обычно в документах, смешивающих прозу с разметкой. Ключ #text содержит текст, а остальные ключи — дочерние элементы.
Что сохраняется
Имена элементов, вложенность, атрибуты и текст
Имена элементов, их вложенность, их атрибуты и их текст сохраняются. Информация, содержащаяся в данных, есть в JSON, в форме, по которой программы могут пройти.
Порядок того, что встречается один раз
Элементы сохраняют порядок, в котором они были записаны, когда они различны, поэтому запись, перечисляющая название, автора и дату, показывает их в этом порядке.
Текст в точности
Текст каждого элемента сохраняется как записан, включая пробелы внутри него и буквы с диакритическими знаками, символы и знаки других алфавитов.
Что нужно знать, прежде чем конвертировать XML в JSON
Повторяющиеся имена становятся массивом
В XML есть идея, для которой у JSON нет слова: элементы упорядочены и могут повторяться. Имя, встречающееся один раз, становится значением, а имя, встречающееся дважды, становится массивом. Так список с тремя элементами item становится массивом из трёх, а список с единственным элементом становится просто значением, а не массивом из одного. Это значит, что чтение результата обратно не всегда даёт тот же XML. Программа, читающая JSON, должна быть готова к обеим формам там, где список может быть коротким.
Комментарии, инструкции обработки и объявление отбрасываются
Комментарии, инструкции обработки и объявление XML не являются частью данных и не переносятся. Заметка, оставленная разработчиком в комментарии, строка вверху, указывающая версию и кодировку, и инструкции, предназначенные для определённой программы, исчезают. Сами данные остаются.
Всё — текст
В XML нет типов: каждое значение в тегах — текст. Числа, даты и флаги в вашем XML приходят как записанный текст. Программа, читающая JSON, должна интерпретировать их согласно своим нуждам.
Как конвертировать XML в JSON здесь
Добавьте файл
Перетащите файл XML на страницу или выберите его на устройстве. Он читается внутри вашего браузера и не загружается.
Конвертируйте
Нажмите кнопку. Файл обычного размера занимает мгновение. Не закрывайте страницу, пока всё не будет готово.
Скачайте и проверьте
Скачайте JSON и откройте его в текстовом редакторе. Посмотрите на начало и конец и проверьте, что ключи — те имена, которых вы ждёте, а атрибуты несут свой @.
Подробнее о XML и JSON
Два способа записать дерево
И XML, и JSON описывают дерево значений. XML записывает его тегами, которые открываются и закрываются, и допускает атрибуты и смешанное содержимое. JSON записывает его фигурными и квадратными скобками и знает только объекты, списки, строки, числа, логические значения и null. Они хорошо перекрываются для данных, таких как записи и настройки, и плохо — для документов, таких как веб-страница или книга, где текст и разметка перемежаются.
Почему обратный путь не гарантирован
Переход от XML к JSON немного теряет: порядок повторяющихся смешанных элементов, комментарии и различие между атрибутом и элементом, которое сохраняется только через @. При возвращении вы поэтому можете не получить в точности тот же XML. Для обмена данными это редко важно. Для документов важно, и лучше сохранить XML как оригинал.
Пространства имён
Имена в XML могут нести префикс, помещающий их в пространство имён, например словарь определённого стандарта. Такие имена сохраняются как записаны, включая префикс, так что ключ может выглядеть как dc:title. Они не разрешаются и не переписываются.
Распространённые ситуации подробно
Товарные фиды и каталоги
Поставщики и торговые площадки часто предлагают фиды в XML. Чтобы использовать их в современном скрипте или импортировать на платформу, принимающую JSON, конвертируйте XML в JSON и читайте результат.
Старые веб-сервисы
Сервисы, созданные в эпоху SOAP и ранних API, отвечают в XML. Скрипт, который хочет использовать их ответ, может работать с JSON, с которым проще обращаться.
Файлы конфигурации и настроек
Многие программы хранят настройки как XML. Конвертация файла в JSON позволяет прочитать его в инструменте, созданном для JSON, сравнить две версии или передать скрипту.
Ленты, карты сайтов и выгрузки
Новостные ленты, карты сайтов и выгрузки из бухгалтерских или складских программ — это XML. Конвертация даёт форму, в которой проще искать и которую проще загружать в коде.
Практические советы, прежде чем конвертировать XML в JSON
Проверьте, что XML корректен
Каждый тег должен закрываться, а у файла должен быть единственный корневой элемент. Если страница сообщает об ошибке, откройте файл в редакторе, подсвечивающем проблемы XML, и исправьте строку, на которую она указывает.
Знайте, где списки могут быть короткими
Если в вашем XML есть списки, помните, что список с одной записью станет значением, а не массивом из одного. Продумайте код, читающий JSON, так, чтобы он обрабатывал оба случая.
Решите, что делать с атрибутами
Атрибуты приходят как ключи с @. Если ваша программа ожидает их под другими именами, переименуйте их после конвертации или измените программу.
Крупные файлы
Всё работает на вашем устройстве, поэтому очень крупному файлу нужна память. Для файлов в много мегабайт используйте компьютер и разделите данные, если страница не справляется.
Вопросы, которые задают перед конвертацией
Почему один список — массив, а другой — единственное значение?
Потому что имя, встречающееся один раз, становится значением, а имя, встречающееся дважды, становится массивом. Список с одной записью выглядит как единственное значение.
Куда делись мои атрибуты?
Это ключи с @ перед именем, рядом с ключами дочерних элементов.
Где текст, стоящий рядом с другими элементами?
Под ключом #text, потому что больше его некуда поместить.
Почему пропали мои комментарии?
Комментарии, инструкции обработки и объявление XML не являются частью данных и не переносятся.
Загружается ли мой файл?
Нет. Преобразование выполняется в вашем браузере, и файл никогда не покидает ваше устройство.
Можно ли вернуться к XML?
Да. JSON в XML записывает дерево обратно как XML, хотя идентичность обратного пути не гарантируется.
Мудрый выбор при конвертации XML в JSON
JSON, YAML или таблица?
JSON подходит для программ. Для конфигурации, которую правят люди, после конвертации удобнее читается JSON в YAML. Если XML на самом деле — таблица однородных записей, вы можете продолжить с JSON в CSV или JSON в XLSX.
Сохраните XML
XML — оригинал. В нём комментарии, объявление и точный порядок. Сохраните его и считайте JSON удобной копией.
Подумайте о потребителе
Посмотрите, что будет читать JSON, и подгоните работу под него. Скрипт, ожидающий фиксированную структуру, проще написать, если XML регулярен.
Как получить хороший результат после конвертации
Проверьте JSON в просмотрщике
Откройте результат в редакторе, понимающем JSON, и сверните объекты. Если структура выглядит так, как вы ожидаете, она в порядке.
Сравните несколько записей с источником
Возьмите несколько записей из середины и сверьте их с XML. Это занимает минуту и говорит, что преобразование верно.
Сожмите для публикации
Если файл будет загружаться веб-страницей и велик, существуют инструменты, убирающие пробельные символы и делающие его легче. Данные остаются теми же.
Подготовка XML, чтобы он хорошо конвертировался
Держите структуру регулярной
Когда вы конвертируете XML в JSON, регулярные данные конвертируются лучше всего: одни и те же элементы на одних и тех же местах, со списками, всегда записанными как повторяющиеся элементы. Нерегулярные файлы дают нерегулярный JSON, и программе, которая его читает, приходится справляться.
Избегайте смешивания текста и элементов, где можете
Текст рядом с дочерними элементами идёт под #text. Это правильно, но делает результат труднее для использования. Для данных держите текст в листьях, а не между ветвями.
Сначала проверьте на небольшом куске
Если файл большой, возьмите первые записи в тестовый файл и конвертируйте его. Беглый взгляд на результат показывает, такова ли форма, как вы ожидаете.
Чтение JSON после конвертации XML в JSON
Проходите по структуре, а не угадывайте её
Форма результата повторяет форму XML, поэтому лучший способ её понять — открыть оба рядом. Найдите корневой элемент, который становится ключом верхнего уровня, и пройдите одну запись вниз до листьев. После того как вы конвертируете XML в JSON, эта десятиминутная прогулка экономит часы проб и ошибок в коде.
Пишите защитный код для списков
Поскольку единственная запись — значение, а несколько записей — массив, самая надёжная привычка — оборачивать прочитанное: если это не массив, положите его в массив. Одна строка кода в начале чтеца делает остальное простым, и ваша программа больше не ломается в тот день, когда фид содержит всего один товар.
Обращайтесь с атрибутами осторожно
Ключи, начинающиеся с @, — атрибуты. Некоторым инструментам не нравятся такие имена как имена свойств, поэтому при загрузке вы можете предпочесть их переименовать. Смысл остаётся тем же; меняется лишь метка.
Не правьте JSON вместо источника
Когда данные меняются, меняйте XML в его источнике или пусть система создаст новую выгрузку, и конвертируйте XML в JSON снова. Правка копии оставляет их несогласованными.
Приватность и обращение
Почему для данных важно локальное преобразование
Файлы XML часто содержат личное: счета, клиентов, заказы, настройки. Многие онлайн-конвертеры загружают ваш файл на сервер, обрабатывают его и присылают результат, и какое-то время копия живёт на машине, которую вы не контролируете. Здесь работу делает ваш собственный браузер, поэтому данные остаются на вашем устройстве.
Что происходит, когда вы уходите
Когда вы закрываете страницу, преобразованный файл исчезает из браузера, поэтому сначала скачайте его. Ничего о ваших данных не сохраняется.
Если что-то пошло не так
Страница говорит, что XML недопустим
Возможно, тег не закрыт, или есть два корневых элемента, или символ, который XML не допускает. Откройте файл в редакторе, подсвечивающем ошибки XML, и исправьте строку, на которую он указывает.
Структура не такая, как я ожидал
Проверьте списки с одной записью, а также атрибуты и смешанный текст. Они объясняют большинство сюрпризов.
Страница зависает с большим файлом
Всё работает на вашем устройстве, а большому файлу нужна память. Попробуйте снова на компьютере или разделите данные.
Родственные инструменты
Это же семейство инструментов охватывает соседние задачи. Чтобы вернуться, используйте JSON в XML. Для файлов конфигурации JSON в YAML и YAML в JSON конвертируют между этими двумя. Для таблиц есть JSON в CSV, CSV в JSON, JSON в XLSX и XLSX в JSON.
Разобранный пример
Допустим, поставщик присылает вам товарный фид как файл XML с 800 товарами, у каждого из которых атрибут id, название, цена и список категорий. Вы перетаскиваете файл сюда и нажимаете кнопку. Через мгновение вы скачиваете JSON с массивом из 800 товаров. Идентификатор каждого — ключ @id, название и цена — отдельные ключи, а категории образуют массив. Для немногих товаров с единственной категорией значение — простая строка, и ваш скрипт импорта обрабатывает оба случая. XML остаётся в вашей папке как оригинал поставщика.
Короткий чек-лист
Перед конвертацией
Проверьте, что XML корректен. Отметьте, где списки могут быть короткими. Сохраните XML.
Во время конвертации
Оставайтесь на странице, пока файл не будет готов.
После конвертации
Откройте JSON, проверьте ключи, атрибуты и списки и протестируйте его с программой, которая будет его читать.
Распространённые ошибки
Предположение, что каждый список — массив
Список с одной записью становится значением. Напишите читающий код так, чтобы он принимал оба варианта.
Ожидание идеального обратного пути
Не полагайтесь на то, что переход от XML к JSON и обратно даст тот же XML. Сохраните оригинал.
Забвение того, что все значения — текст
В XML нет типов. Преобразуйте числа и даты в программе, которая их использует.
Ваши данные остаются на вашем устройстве
Преобразование происходит локально. Ваш файл читается вашим собственным браузером, переписывается там и возвращается вам как JSON. Ничего не загружается, поэтому копия не оказывается на сервере и никто другой не может её прочитать. Для данных с личным содержанием это безопасный способ конвертировать XML в JSON.
Итог
Чтобы конвертировать XML в JSON здесь, перетащите файл и нажмите кнопку. Он читается и записывается в вашем браузере, поэтому файл никогда не покидает ваше устройство. Имена элементов, их вложенность, их атрибуты и их текст сохраняются. Атрибут сохраняет своё имя с @ перед ним, а текст, делящий элемент с дочерними элементами, сохраняется под #text, потому что больше его некуда поместить. В XML есть идея, для которой у JSON нет слова: элементы упорядочены и могут повторяться. Имя, встречающееся один раз, становится значением, а имя, встречающееся дважды, становится массивом, поэтому чтение результата обратно не всегда даёт тот же XML. Комментарии, инструкции обработки и объявление XML не являются частью данных и не переносятся.