Converteer JSON naar XML Java met behulp van Gson en JAXB met Voorbeeld
Wat is JSON?
JSON is een afkorting voor Javascript Object Notation, een vorm van gegevens die een bepaalde regel volgt dat de meeste programmeertalen momenteel leesbaar zijn. We kunnen het gemakkelijk opslaan in een bestand of record in de database. JSON-indeling gebruikt sleutel-waardeparen om gegevens te beschrijven.
In het volgende voorbeeld definiëren we een JSON-tekenreeks die persoonlijke informatie opslaat:
{ "username" : "guru99user", "email" : "[email protected]" }
Dus de syntaxis van JSON is heel eenvoudig. Elke gegevensinformatie bestaat uit twee delen:sleutel en waarde die overeenkomen met de veldnaam en de waarde ervan in een bepaald record. Maar als we verder kijken, zijn er een paar dingen zoals deze:
- De JSON-tekenreeks wordt omsloten door accolades {}.
- De sleutels en waarden van JSON moeten tussen aanhalingstekens {“} staan.
- Als er meer gegevens zijn (meer sleutel => waardeparen), gebruiken we komma's (,) om te scheiden.
- JSON-sleutels moeten niet-ondertekende letters of cijfers zijn, _, en geen spaties, het eerste teken mag niet worden ingesteld op cijfers.
In deze tutorial leer je-
- Wat is JSON?
- Wat is XML?
- Wat is Gson?
- Wat is JAXB?
- Hoe converteer ik XML naar JSON?
- Converteer XML-bericht naar Java-objecten met JAXB
- Converteer Java-objecten naar JSON-bericht met Gson
- Converteer JSON-bericht naar Java-objecten met Gson
- Converteer Java-objecten naar XML-bericht met JAXB
Wat is XML?
XML staat voor eXtensible Markup Language, ook wel de uitbreidbare opmaaktaal genoemd, voorgesteld door het World Wide Web Consortium (https://www.w3.org/) om andere opmaaktalen te creëren. Dit is een eenvoudige subset die veel verschillende soorten gegevens kan beschrijven, dus het is erg handig bij het delen van gegevens tussen systemen.
Tags in XML zijn vaak niet vooraf gedefinieerd, maar worden gemaakt volgens gebruikersconventies. XML introduceert nieuwe functies op basis van de voordelen van HTML.
Er zijn nog meer handige functies voor het maken van XML in diverse systemen en oplossingen:
- XML is uitbreidbaar:met XML kunt u uw eigen aangepaste tags maken die bij uw toepassing passen.
- XML bevat gegevens, maar geeft ze niet weer:met XML kunt u gegevens opslaan, ongeacht hoe deze worden weergegeven.
- XML is een veelgebruikte standaard:XML is ontwikkeld door het World Wide Web Consortium (W3C) en is beschikbaar als open standaard.
XML is gebouwd op een geneste knooppuntstructuur. Elk knooppunt heeft als volgt een openingstag en een sluitingstag:
<node>content</node>
Waarin:
is een open tag, de naam van deze tag wordt door jou bepaald. - is een gesloten tag, de naam van deze tag moet overeenkomen met de naam van de open tag.
- inhoud is de inhoud van deze tag.
Bovenaan elk XML-bestand moet u een tag declareren om aan te geven welke versie XML in gebruik is. De syntaxis van de instructietag:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
Wat is Gson?
Gson (https://github.com/google/gson) is een java-bibliotheek waarmee gebruikers van een Java-object naar een JSON-tekenreeks kunnen converteren en ook van een JSON-tekenreeks naar een Java-object. Gson kan met willekeurige Java-objecten werken, inclusief bestaande objecten zonder dat u hun broncode hoeft te hebben.
Sinds versie 1.6 introduceert Gson twee nieuwe klassen – JsonReader en JsonWriter om streaming-verwerking op JSON-gegevens te bieden.
- JsonWriter – Streaming schrijven naar JSON. De syntaxis voor algemene implementatie is als volgt. We maken een JsonWriter object. Om te beginnen en eindigen met het maken van een JSON-tekenreeks, gebruiken we de functie beginObject() en endObject() . In het midden van het uitvoeren van deze twee functies, voeren we het schrijven van gegevens uit met paren (sleutel => waarde).
JsonWriter writer = new JsonWriter(); writer.beginObject(); writer.name("key").value("value"); writer.endObject();
- JsonReader – Streaming gelezen vanuit JSON. De syntaxis voor algemene implementatie is als volgt. We maken een JsonReader-object. Om te beginnen en eindigen met het maken van een JSON-string, gebruiken we de functies beginObject() en endObject(). In het midden van het uitvoeren van deze twee functies, voeren we het lezen van gegevens uit met paren (sleutel => waarde).
JsonReader reader = new JsonReader(); reader.beginObject(); while (reader.hasNext()) { String name = reader.nextName(); if (name.equals("key")) { String value = reader.nextString(); } } reader.endObject();
De verwerking van Gson-streaming is snel. U moet echter elk paar (sleutel => waarde) verwerken van JSON-gegevens.
Wat is JAXB?
JAXB staat voor Java Architecture for XML Binding, een bibliotheek die annotaties gebruikt om Java-objecten om te zetten naar XML-inhoud en vice versa. Omdat JAXB is gedefinieerd via een specificatie, kunnen we verschillende implementaties voor deze standaard gebruiken.
Bij JAXB gebruiken we vaak de volgende basisannotaties, namelijk:
- @XmlRootElement :Deze annotatie specificeert wat de buitenste tag van het XML-bestand is en daarom wordt het boven aan een klasse gedeclareerd.
- @XmlElementWrapper :Deze annotatie maakt een XML-wikkelelement rond verzamelingen.
- @XmlElement :Deze annotatie die wordt gebruikt om een attribuut van het object te declareren, is een tag van het XML-bestand.
- @XmlAttribute :Deze annotatie die ook wordt gebruikt om een attribuut van het object aan te geven, is een tag van het XML-bestand.
De syntaxis voor algemene implementatie is als volgt. Eerst initialiseren we de JAXBContext object met het MijnObject object om te converteren.
JAXBContext jaxbContext = JAXBContext.newInstance(MyObject.class);
In deze JAXBContext object, het heeft een methode om een object te maken dat XML-inhoud converteert naar een Java-object, Unmarshaller .
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
In deze JAXBContext object, het heeft een methode om het object te maken dat het Java-object converteert naar de XML-inhoud die Marshaller is .
Marshaller marshallerObj = jaxbContext.createMarshaller();
Hoe converteer ik XML naar JSON?
We implementeren het voorbeeld van XML – JSON-conversie op het platform:
- Open JDK 8 voor Ubuntu 18.04 x64.
- Eclipse IDE 2019-03 (4.11.0) x64 Java-ontwikkeling voor Ubuntu.
- Gson 2.8.5.
Stap 1 . Maak een project.
Maak een nieuw Java-project.
Java
- C++ klasse en object met voorbeeld
- Java Hello World:hoe u uw eerste Java-programma met voorbeeld schrijft
- Inkapseling in Java OOP's met voorbeeld
- String Length() Methode in Java:Hoe te vinden met Voorbeeld
- Java String charAt() Methode met Voorbeeld
- Java String bevat() Methode | Controleer subtekenreeks met voorbeeld
- Java String endsWith() Methode met voorbeeld
- Java BufferedReader:hoe een bestand in Java te lezen met voorbeeld
- Fibonacci-serie in Java met behulp van het programma voor recursie en lussen
- Invoegsorteeralgoritme in Java met programmavoorbeeld
- Selectie sorteren in Java-programma met voorbeeld