Conversión de JSON a XML en Java

Mohammad Irfan 12 octubre 2023
  1. Convierta JSON a XML usando la biblioteca org.json en Java
  2. Convierta JSON a XML usando la biblioteca de subrayado en Java
  3. Convierta JSON a XML usando la biblioteca Jackson en Java
Conversión de JSON a XML en Java

Este tutorial presenta cómo convertir JSON a XML en Java.

Para convertir JSON a XML, podemos usar varias bibliotecas como org.json, subrayado y Jackson. En este artículo, aprenderemos a usar estas bibliotecas y veremos el proceso de conversión de JSON a XML.

JSON es un formato de datos utilizado por la aplicación para el intercambio de datos. Las aplicaciones lo utilizan debido a su ligereza y sencillez, mientras que XML es un lenguaje de marcado y también se utiliza para transferir datos.

Comencemos con algunos ejemplos para convertir JSON a XML en Java.

Convierta JSON a XML usando la biblioteca org.json en Java

En este ejemplo, usamos la biblioteca org.json que proporciona JSONObject y una clase XML. La clase JSONObject se usa para convertir una cadena JSON en un objeto JSON y luego, al usar la clase XML, convertimos el JSON a XML.

La clase XML proporciona un método toString() estático que devuelve el resultado como una cadena. Vea el ejemplo a continuación.

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

Producción :

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

Convierta JSON a XML usando la biblioteca de subrayado en Java

Aquí, usamos la biblioteca underscore para convertir JSON a XML. Usamos la clase U y su método estático jsonToXml() que devuelve XML como una cadena. Vea el ejemplo a continuación.

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

Producción :

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

Convierta JSON a XML usando la biblioteca Jackson en Java

Aquí, usamos la clase ObjectMapper para leer JSON y luego la clase XmlMapper para obtener datos en formato XML. Aquí, usamos dos paquetes principales, jackson.databind y jackson.dataformat; el primero contiene clases relacionadas con JSON y el segundo incluye clases relacionadas con XML. Vea el ejemplo a continuación.

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

Producción :

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

Artículo relacionado - Java JSON

Artículo relacionado - Java XML