Converter JSON para XML Java usando Gson e JAXB com Exemplo
O que é JSON?
JSON é uma abreviação de Javascript Object Notation, que é uma forma de dados que segue uma certa regra de que a maioria das linguagens de programação são atualmente legíveis. Podemos salvá-lo facilmente em um arquivo ou registrá-lo no banco de dados. O formato JSON usa pares de valores-chave para descrever dados.
Seguindo o exemplo, definimos uma string JSON que armazena informações pessoais:
Portanto, a sintaxe do JSON é muito simples. Cada informação de dados terá duas partes:chave e valor que correspondem ao nome do campo e seu valor em um determinado registro. Mas, olhando mais longe, existem algumas coisas como esta:
A string JSON é delimitada por chaves {}.
As chaves e valores de JSON devem estar entre aspas {“}.
Se houver mais dados (mais pares de chave => valor), usamos vírgulas (,) para separar.
As chaves JSON devem ser letras ou números sem sinal, _ e sem espaços. O primeiro caractere não deve ser definido como números.
Neste tutorial, você aprenderá-
O que é JSON?
O que é XML?
O que é Gson?
O que é JAXB?
Como converter XML para JSON?
Converter mensagem XML em objetos Java usando JAXB
Converter objetos Java em mensagens JSON usando Gson
Converter mensagem JSON em objetos Java usando Gson
Converter objetos Java em mensagens XML usando JAXB
O que é XML?
XML significa eXtensible Markup Language, também chamada de linguagem de marcação extensível proposta pelo World Wide Web Consortium (https://www.w3.org/) para criar outras linguagens de marcação. Este é um subconjunto simples que pode descrever muitos tipos diferentes de dados, por isso é muito útil no compartilhamento de dados entre sistemas.
As tags em XML geralmente não são predefinidas, mas são criadas de acordo com as convenções do usuário. XML introduz novos recursos baseados nas vantagens do HTML.
Existem alguns recursos de criação de XML mais úteis em diversos sistemas e soluções:
O XML é extensível:o XML permite que você crie suas próprias tags personalizadas para se adequar ao seu aplicativo.
O XML carrega dados, não os exibe:o XML permite que você armazene dados independentemente de como eles serão exibidos.
O XML é um padrão comum:o XML foi desenvolvido pelo World Wide Web Consortium (W3C) e está disponível como um padrão aberto.
XML é construído em uma estrutura de nó aninhado. Cada nó terá uma tag de abertura e uma tag de fechamento da seguinte forma:
<node>content</node>
Em que:
é uma tag aberta, o nome desta tag é definido por você.
é uma tag fechada, o nome dessa tag deve corresponder ao nome da tag aberta.
conteúdo é o conteúdo desta tag.
Na parte superior de cada arquivo XML, você deve declarar uma tag para indicar a versão do XML que está em uso. A sintaxe da tag de instrução:
Gson (https://github.com/google/gson) é uma biblioteca java que permite aos usuários converter de um objeto Java para uma string JSON e também converter de uma string JSON para um objeto Java. O Gson pode trabalhar com objetos Java arbitrários, incluindo objetos existentes, sem que você tenha seu código-fonte.
Desde a versão 1.6, Gson apresenta duas novas classes – JsonReader e JsonWriter para fornecer processamento de streaming em dados JSON.
JsonWriter – Gravação de streaming para JSON. A sintaxe para implementação geral é a seguinte. Criamos um JsonWriter objeto. Para iniciar e terminar a criação de uma string JSON, usamos a função beginObject() e endObject(). No meio da execução dessas duas funções, realizamos a escrita de dados com pares (chave => valor).
JsonWriter writer = new JsonWriter();
writer.beginObject();
writer.name("key").value("value");
writer.endObject();
JsonReader – Streaming de leitura de JSON. A sintaxe para implementação geral é a seguinte. Criamos um objeto JsonReader. Para iniciar e terminar a criação de uma string JSON, usamos a função beginObject() e endObject(). No meio da execução dessas duas funções, realizamos a leitura de dados com pares (chave => valor).
JsonReader reader = new JsonReader();
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("key")) {
String value = reader.nextString();
}
}
reader.endObject();
O processamento de streaming Gson é rápido. No entanto, você precisa lidar com cada par (chave => valor) de processamento de dados JSON.
O que é JAXB?
JAXB significa Java Architecture for XML Binding, que é uma biblioteca que usa anotações para converter objetos Java em conteúdo XML e vice-versa. Como o JAXB é definido por meio de uma especificação, podemos usar diferentes implementações para este padrão.
Com JAXB, geralmente usamos as seguintes anotações básicas, a saber:
@XmlRootElement :esta anotação especifica qual é a tag externa do arquivo XML e, portanto, é declarada no topo de uma classe.
@XmlElementWrapper :esta anotação cria um elemento XML wrapper em torno das coleções.
@XmlElement :esta anotação usada para declarar um atributo do objeto é uma tag do arquivo XML.
@XmlAttribute :esta anotação também usada para declarar um atributo do objeto é uma tag do arquivo XML.
A sintaxe para implementação geral é a seguinte. Primeiro, inicializaremos o JAXBContext objeto com o MeuObjeto objeto a ser convertido.