Conversão de JSON para XML em Java

Mohammad Irfan 12 outubro 2023
  1. Converta JSON em XML usando a Biblioteca org.json em Java
  2. Converta JSON em XML usando a Biblioteca de sublinhado em Java
  3. Converta JSON em XML usando a Biblioteca Jackson em Java
Conversão de JSON para XML em Java

Este tutorial apresenta como converter JSON em XML em Java.

Para converter JSON em XML, podemos usar várias bibliotecas, como org.json, sublinhado e Jackson. Neste artigo, aprenderemos a usar essas bibliotecas e veremos o processo de conversão de JSON para XML.

JSON é um formato de dados usado pelo aplicativo para intercâmbio de dados. É usado pelos aplicativos por ser leve e simples, enquanto o XML é uma linguagem de marcação e também é usado para transferir dados.

Vamos começar com alguns exemplos para converter JSON em XML em Java.

Converta JSON em XML usando a Biblioteca org.json em Java

Neste exemplo, usamos a biblioteca org.json que fornece JSONObject e uma classe XML. A classe JSONObject é usada para transformar uma string JSON em um objeto JSON e, em seguida, usando a classe XML, convertemos o JSON em XML.

A classe XML fornece um método toString () estático que retorna o resultado como uma String. Veja o exemplo abaixo.

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);
  }
}

Resultado:

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

Converta JSON em XML usando a Biblioteca de sublinhado em Java

Aqui, usamos a biblioteca underscore para converter JSON em XML. Usamos a classe U e seu método estático jsonToXml() que retorna XML como uma string. Veja o exemplo abaixo.

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);
  }
}

Resultado:

{
  "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>

Converta JSON em XML usando a Biblioteca Jackson em Java

Aqui, usamos a classe ObjectMapper para ler JSON e, em seguida, a classe XmlMapper para obter dados de formato XML. Aqui, usamos dois pacotes principais, jackson.databind e jackson.dataformat; a primeira contém classes relacionadas a JSON e a segunda inclui classes relacionadas a XML. Veja o exemplo abaixo.

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());
  }
}

Resultado:

{
  "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>

Artigo relacionado - Java JSON

Artigo relacionado - Java XML