Konvertierung von JSON in XML in Java

Mohammad Irfan 12 Oktober 2023
  1. Konvertieren von JSON in XML mit der org.json-Bibliothek in Java
  2. Konvertieren Sie JSON in XML mithilfe der Unterstrichbibliothek in Java
  3. Konvertieren von JSON in XML mit der Jackson-Bibliothek in Java
Konvertierung von JSON in XML in Java

In diesem Tutorial wird erläutert, wie Sie JSON in XML in Java konvertieren.

Um JSON in XML zu konvertieren, können wir mehrere Bibliotheken wie org.json, underscore und Jackson. In diesem Artikel lernen wir, diese Bibliotheken zu verwenden und sehen den Konvertierungsprozess von JSON in XML.

JSON ist ein Datenformat, das von der Anwendung für den Datenaustausch verwendet wird. Es wird von den Anwendungen verwendet, weil es leicht und einfach ist, während XML eine Auszeichnungssprache ist und auch zum Übertragen von Daten verwendet wird.

Beginnen wir mit einigen Beispielen zum Konvertieren von JSON in XML in Java.

Konvertieren von JSON in XML mit der org.json-Bibliothek in Java

In diesem Beispiel haben wir die Bibliothek org.json verwendet, die JSONObject und eine XML-Klasse bereitstellt. Die JSONObject-Klasse wird verwendet, um einen JSON-String in ein JSON-Objekt zu verwandeln, und dann haben wir mithilfe der XML-Klasse das JSON in XML konvertiert.

Die XML-Klasse stellt eine statische toString()-Methode bereit, die das Ergebnis als String zurückgibt. Siehe das Beispiel unten.

import java.io.IOException;
import org.json.*;
public class SimpleTesting {
  public static void main(String[] args) throws IOException, JSONException {
    String jsonStr = "{student : { age:30, name : Kumar, technology : Java } }";
    JSONObject json = new JSONObject(jsonStr);
    String xml = XML.toString(json);
    System.out.println(xml);
  }
}

Ausgabe:

<student>
   <name>Kumar</name>
   <technology>Java</technology>
   <age>30</age>
</student>

Konvertieren Sie JSON in XML mithilfe der Unterstrichbibliothek in Java

Hier haben wir die Bibliothek underscore verwendet, um JSON in XML zu konvertieren. Wir haben die Klasse U und ihre statische Methode jsonToXml() verwendet, die XML als String zurückgibt. Siehe das Beispiel unten.

import com.github.underscore.lodash.U;
import java.io.IOException;
public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    String jsonStr =
        "{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\":{\"id\":42},\"array\":[1,2,3]}";
    System.out.println(jsonStr);
    String xml = U.jsonToXml(jsonStr);
    System.out.println(xml);
  }
}

Ausgabe:

{"name":"JSON","integer":1,"double":2.0,"boolean":true,"nested":{"id":42},"array":[1,2,3]}
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name>JSON</name>
  <integer number="true">1</integer>
  <double number="true">2.0</double>
  <boolean boolean="true">true</boolean>
  <nested>
    <id number="true">42</id>
  </nested>
  <array number="true">1</array>
  <array number="true">2</array>
  <array number="true">3</array>
</root>

Konvertieren von JSON in XML mit der Jackson-Bibliothek in Java

Hier haben wir die Klasse ObjectMapper verwendet, um JSON zu lesen und dann die Klasse XmlMapper, um Daten im XML-Format zu erhalten. Hier haben wir zwei Hauptpakete verwendet, jackson.databind und jackson.dataformat; die erste enthält Klassen, die sich auf JSON beziehen, und die zweite enthält Klassen, die sich auf XML beziehen. Siehe das Beispiel unten.

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator;
import java.io.IOException;
import java.io.StringWriter;
public class SimpleTesting {
  public static void main(String[] args) throws IOException {
    final String jsonStr =
        "{\"name\":\"JSON\",\"integer\":1,\"double\":2.0,\"boolean\":true,\"nested\":{\"id\":42},\"array\":[1,2,3]}";
    ObjectMapper jsonMapper = new ObjectMapper();
    JsonNode node = jsonMapper.readValue(jsonStr, JsonNode.class);
    XmlMapper xmlMapper = new XmlMapper();
    xmlMapper.configure(SerializationFeature.INDENT_OUTPUT, true);
    xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
    xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, true);
    StringWriter sw = new StringWriter();
    xmlMapper.writeValue(sw, node);
    System.out.println(sw.toString());
  }
}

Ausgabe:

{"name":"JSON","integer":1,"double":2.0,"boolean":true,"nested":{"id":42},"array":[1,2,3]}
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <name>JSON</name>
  <integer number="true">1</integer>
  <double number="true">2.0</double>
  <boolean boolean="true">true</boolean>
  <nested>
    <id number="true">42</id>
  </nested>
  <array number="true">1</array>
  <array number="true">2</array>
  <array number="true">3</array>
</root>

Verwandter Artikel - Java JSON

Verwandter Artikel - Java XML