Convertir JSON en XML Java en utilisant Gson et JAXB avec l'exemple
Qu'est-ce que JSON ?
JSON est une abréviation de Javascript Object Notation, qui est une forme de données qui suit une certaine règle selon laquelle la plupart des langages de programmation sont actuellement lisibles. Nous pouvons facilement l'enregistrer dans un fichier ou enregistrer dans la base de données. Le format JSON utilise des paires clé-valeur pour décrire les données.
En suivant l'exemple, nous définissons une chaîne JSON qui stocke des informations personnelles :
La syntaxe de JSON est donc très simple. Chaque information de données aura deux parties :clé et valeur qui correspondent au nom du champ et à sa valeur dans un certain enregistrement. Mais en regardant plus loin, il y a quelques choses comme ça :
La chaîne JSON est entourée d'accolades {}.
Les clés et les valeurs de JSON doivent être placées entre guillemets {“}.
S'il y a plus de données (plus de paires clé => valeur), nous utilisons des virgules (,) pour les séparer.
Les clés JSON doivent être des lettres ou des chiffres non signés, _, et aucun espace, le premier caractère ne doit pas être défini sur des chiffres.
Dans ce tutoriel, vous apprendrez-
Qu'est-ce que JSON ?
Qu'est-ce que XML ?
Qu'est-ce que Gson ?
Qu'est-ce que JAXB ?
Comment convertir XML en JSON ?
Convertir un message XML en objets Java à l'aide de JAXB
Convertir des objets Java en message JSON à l'aide de Gson
Convertir un message JSON en objets Java à l'aide de Gson
Convertir des objets Java en message XML à l'aide de JAXB
Qu'est-ce que XML ?
XML signifie eXtensible Markup Language également appelé le langage de balisage extensible proposé par le World Wide Web Consortium (https://www.w3.org/) pour créer d'autres langages de balisage. Il s'agit d'un sous-ensemble simple qui peut décrire de nombreux types de données différents, il est donc très utile pour partager des données entre les systèmes.
Les balises en XML ne sont souvent pas prédéfinies, mais elles sont créées selon les conventions de l'utilisateur. XML introduit de nouvelles fonctionnalités basées sur les avantages du HTML.
Il existe des fonctionnalités XML plus utiles dans divers systèmes et solutions :
XML est extensible :XML vous permet de créer vos propres balises personnalisées en fonction de votre application.
XML transporte des données, sans les afficher :XML vous permet de stocker des données indépendamment de la manière dont elles seront affichées.
XML est une norme commune :XML a été développé par le World Wide Web Consortium (W3C) et est disponible en tant que norme ouverte.
XML est construit sur une structure de nœuds imbriqués. Chaque nœud aura une balise d'ouverture et une balise de fermeture comme suit :
<node>content</node>
Dans lequel :
est une balise ouverte, le nom de cette balise est défini par vous.
est une balise fermée, le nom de cette balise doit correspondre au nom de la balise ouverte.
contenu est le contenu de cette balise.
En haut de chaque fichier XML, vous devez déclarer une balise pour indiquer la version XML utilisée. La syntaxe de la balise d'instruction :
Gson (https://github.com/google/gson) est une bibliothèque Java qui permet aux utilisateurs de convertir un objet Java en chaîne JSON et également de convertir une chaîne JSON en objet Java. Gson peut travailler avec des objets Java arbitraires, y compris des objets existants sans que vous ayez leur code source.
Depuis la version 1.6, Gson introduit deux nouvelles classes - JsonReader et JsonWriter pour fournir un traitement en continu sur les données JSON.
JsonWriter – Ecriture en continu sur JSON. La syntaxe pour l'implémentation générale est la suivante. Nous créons un JsonWriter objet. Pour commencer et terminer la création d'une chaîne JSON, nous utilisons la fonction beginObject() et endObject(). Au milieu de l'exécution de ces deux fonctions, nous effectuons l'écriture de données avec des paires (clé => valeur).
JsonWriter writer = new JsonWriter();
writer.beginObject();
writer.name("key").value("value");
writer.endObject();
JsonReader – Streaming lu à partir de JSON. La syntaxe pour l'implémentation générale est la suivante. Nous créons un objet JsonReader. Pour commencer et terminer la création d'une chaîne JSON, nous utilisons les fonctions beginObject() et endObject(). Au milieu de l'exécution de ces deux fonctions, nous effectuons la lecture de données avec des paires (clé => valeur).
JsonReader reader = new JsonReader();
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("key")) {
String value = reader.nextString();
}
}
reader.endObject();
Le traitement du streaming Gson est rapide. Cependant, vous devez gérer chaque paire (clé => valeur) de traitement des données JSON.
Qu'est-ce que JAXB ?
JAXB signifie Java Architecture for XML Binding, qui est une bibliothèque qui utilise des annotations pour convertir des objets Java en contenu XML et vice versa. Comme JAXB est défini via une spécification, nous pouvons utiliser différentes implémentations pour cette norme.
Avec JAXB, nous utilisons souvent les annotations de base suivantes, à savoir :
@XmlRootElement :Cette annotation spécifie quelle est la balise la plus externe du fichier XML et, par conséquent, elle est déclarée au-dessus d'une classe.
@XmlElementWrapper :Cette annotation crée un élément XML wrapper autour des collections.
@XmlElement :Cette annotation utilisée pour déclarer un attribut de l'objet est une balise du fichier XML.
@XmlAttribute :Cette annotation également utilisée pour déclarer un attribut de l'objet est une balise du fichier XML.
La syntaxe pour l'implémentation générale est la suivante. Tout d'abord, nous allons initialiser le JAXBContext objet avec MyObject objet à convertir.