Преобразование JSON в XML Java с использованием Gson и JAXB с примером
Что такое JSON?
JSON — это аббревиатура от Javascript Object Notation, которая представляет собой форму данных, которая следует определенному правилу, которое в настоящее время доступно для чтения большинства языков программирования. Мы можем легко сохранить его в файл или записать в базу данных. Формат JSON использует пары ключ-значение для описания данных.
В следующем примере мы определяем строку JSON, в которой хранится личная информация:
Итак, синтаксис JSON очень прост. Каждая информация о данных будет состоять из двух частей:ключа и значения, которые соответствуют имени поля и его значению в определенной записи. Но при дальнейшем рассмотрении есть несколько вещей, подобных этому:
Строка JSON заключена в фигурные скобки {}.
Ключи и значения JSON должны быть заключены в кавычки {“}.
Если данных больше (больше пар ключ => значение), для разделения используются запятые (,).
Ключи JSON должны состоять из букв или цифр без знака, _ и без пробелов, первый символ не должен быть цифрой.
В этом уроке вы узнаете-
Что такое JSON?
Что такое XML?
Что такое Гсон?
Что такое JAXB?
Как преобразовать XML в JSON?
Преобразование сообщения XML в объекты Java с помощью JAXB
Преобразование объектов Java в сообщение JSON с помощью Gson
Преобразование сообщения JSON в объекты Java с помощью Gson
Преобразование объектов Java в сообщение XML с помощью JAXB
Что такое XML?
XML означает расширяемый язык разметки, также называемый расширяемым языком разметки, предложенным Консорциумом World Wide Web (https://www.w3.org/) для создания других языков разметки. Это простое подмножество, которое может описывать множество различных типов данных, поэтому оно очень полезно при обмене данными между системами.
Теги в XML часто не определены заранее, а создаются в соответствии с пользовательскими соглашениями. В XML представлены новые функции, основанные на преимуществах HTML.
Есть еще несколько полезных функций для создания XML в различных системах и решениях:
XML расширяем:XML позволяет создавать собственные пользовательские теги в соответствии с вашим приложением.
XML переносит данные, а не отображает их:XML позволяет хранить данные независимо от того, как они будут отображаться.
XML — это общепринятый стандарт:XML был разработан консорциумом World Wide Web Consortium (W3C) и доступен как открытый стандарт.
XML построен на основе структуры вложенных узлов. Каждый узел будет иметь открывающий тег и закрывающий тег следующим образом:
<node>content</node>
Где:
<узел> является открытым тегом, имя этого тега определяется вами.
узел> является закрытым тегом, имя этого тега должно совпадать с именем открытого тега.
контент является содержимым этого тега.
В начале каждого XML-файла вы должны объявить тег, чтобы указать, какая версия XML используется. Синтаксис тега инструкции:
Gson (https://github.com/google/gson) — это библиотека Java, которая позволяет пользователям преобразовывать объект Java в строку JSON, а также преобразовывать строку JSON в объект Java. Gson может работать с произвольными объектами Java, включая существующие объекты, без исходного кода.
Начиная с версии 1.6, Gson представляет два новых класса — JsonReader. и JsonWriter для обеспечения потоковой обработки данных JSON.
JsonWriter – Потоковая запись в JSON. Синтаксис для общей реализации следующий. Мы создаем JsonWriter объект. Чтобы начать и закончить создание строки JSON, мы используем функцию beginObject(). и endObject(). В середине выполнения этих двух функций мы выполняем запись данных парами (ключ => значение).
JsonWriter writer = new JsonWriter();
writer.beginObject();
writer.name("key").value("value");
writer.endObject();
JsonReader – Потоковое чтение из JSON. Синтаксис для общей реализации следующий. Мы создаем объект JsonReader. Чтобы начать и закончить создание строки JSON, мы используем функции beginObject() и endObject(). В середине выполнения этих двух функций мы выполняем чтение данных с помощью пар (ключ => значение).
JsonReader reader = new JsonReader();
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("key")) {
String value = reader.nextString();
}
}
reader.endObject();
Потоковая обработка Gson выполняется быстро. Однако вам необходимо обрабатывать каждую пару (ключ => значение) обработки данных JSON.
Что такое JAXB?
JAXB расшифровывается как Архитектура Java для привязки XML, которая представляет собой библиотеку, использующую аннотации для преобразования объектов Java в содержимое XML и наоборот. Поскольку JAXB определяется спецификацией, мы можем использовать различные реализации этого стандарта.
В JAXB мы часто используем следующие основные аннотации, а именно:
@XmlRootElement :эта аннотация указывает, какой самый внешний тег XML-файла, и поэтому он объявлен поверх класса.
@XmlElementWrapper :эта аннотация создает XML-элемент-оболочку вокруг коллекций.
@XmlElement :эта аннотация, используемая для объявления атрибута объекта, является тегом XML-файла.
@XmlAttribute :эта аннотация также используется для объявления атрибута объекта как тега XML-файла.
Синтаксис для общей реализации следующий. Во-первых, мы инициализируем JAXBContext. объект с помощью MyObject объект для преобразования.