Java에서 JSON을 XML로 변환

Mohammad Irfan 2023년10월12일
  1. Java에서 org.json 라이브러리를 사용하여 JSON을 XML로 변환
  2. Java에서 밑줄 라이브러리를 사용하여 JSON을 XML로 변환
  3. Java에서 Jackson 라이브러리를 사용하여 JSON을 XML로 변환
Java에서 JSON을 XML로 변환

이 자습서에서는 Java에서 JSON을 XML로 변환하는 방법을 소개합니다.

JSON을 XML로 변환하기 위해 org.json, 밑줄 및 잭슨과 같은 여러 라이브러리를 사용할 수 있습니다. 이 기사에서는 이러한 라이브러리를 사용하는 방법을 배우고 JSON을 XML로 변환하는 과정을 살펴봅니다.

JSON은 데이터 교환을 위해 애플리케이션에서 사용하는 데이터 형식입니다. 가볍고 단순하기 때문에 응용 프로그램에서 사용되는 반면 XML은 마크업 언어이며 데이터 전송에도 사용됩니다.

Java에서 JSON을 XML로 변환하는 몇 가지 예부터 시작하겠습니다.

Java에서 org.json 라이브러리를 사용하여 JSON을 XML로 변환

이 예제에서는 JSONObject와 XML 클래스를 제공하는 org.json 라이브러리를 사용했습니다. JSONObject 클래스를 사용하여 JSON 문자열을 JSON 객체로 만든 다음 XML 클래스를 사용하여 JSON을 XML로 변환했습니다.

XML 클래스는 결과를 문자열로 반환하는 정적 toString() 메서드를 제공합니다. 아래 예를 참조하십시오.

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

출력:

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

Java에서 밑줄 라이브러리를 사용하여 JSON을 XML로 변환

여기에서 underscore 라이브러리를 사용하여 JSONXML로 변환했습니다. U 클래스와 XML을 문자열로 반환하는 정적 메서드 jsonToXml()을 사용했습니다. 아래 예를 참조하십시오.

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

출력:

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

Java에서 Jackson 라이브러리를 사용하여 JSON을 XML로 변환

여기서는 ObjectMapper 클래스를 사용하여 JSON을 읽은 다음 XmlMapper 클래스를 사용하여 XML 형식 데이터를 가져왔습니다. 여기서는 jackson.databindjackson.dataformat의 두 가지 주요 패키지를 사용했습니다. 첫 번째는 JSON과 관련된 클래스를 포함하고 두 번째는 XML과 관련된 클래스를 포함합니다. 아래 예를 참조하십시오.

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

출력:

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

관련 문장 - Java JSON

관련 문장 - Java XML