Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 XML을 JSON 배열로 변환하는 방법

JSON은 경량 데이터 교환(data-interchange) 형식으로, 키-값(key-value) 쌍의 구조를 가지고 있습니다. Java에서는 org.json.XML 클래스를 사용하여 XML을 JSON 배열로 변환할 수 있습니다. 이 클래스는 XML 문자열을 JSONObject로 변환해 주는 정적(static) 메서드XML.toJSONObject()를 제공합니다.

문법(Syntax)

public static JSONObject toJSONObject(java.lang.String string) throws JSONException

아래 예제를 통해 XML을 JSON 배열로 변환하는 과정을 살펴보겠습니다.

예제(Example)

import org.json.*;
public class ConvertXMLToJSONArrayTest {
   public static String xmlString= "<?xml version=\"1.0\" ?><root><test attrib=\"jsontext1\">tutorialspoint</test><test attrib=\"jsontext2\">tutorix</test></root>";
   public static void main(String[] args) {
      try {
         JSONObject json = XML.toJSONObject(xmlString); // XML을 JSON으로 변환
         String jsonPrettyPrintString = json.toString(4); // JSON 보기 좋게 출력
         System.out.println(jsonPrettyPrintString);
      } catch(JSONException je) {
         System.out.println(je.toString());
      }
   }
}

출력 결과(Output)

{"root": {"test": [
    {
    "attrib": "jsontext1",
    "content": "tutorialspoint"
    },
    {
    "attrib": "jsontext2",
    "content": "tutorix"
    }
]}}

코드 설명

위 예제에서는 먼저 XML 형식의 문자열을 선언합니다. 이 문자열에는 두 개의 <test> 요소가 포함되어 있으며, 각 요소는 attrib 속성과 텍스트 내용을 가지고 있습니다.

XML.toJSONObject() 메서드가 호출되면 XML 문자열이 JSONObject로 변환됩니다. 이때 동일한 이름을 가진 여러 개의 XML 요소는 자동으로 JSON 배열로 그룹화됩니다. 마지막으로 json.toString(4)를 호출하여 들여쓰기 간격 4칸으로 보기 좋게 포맷팅된 JSON 문자열을 출력합니다.

변환 결과에서 볼 수 있듯이, 반복되는 <test> 요소들은 하나의 JSON 배열 안에 객체 형태로 담기게 됩니다. 만약 XML 파싱 중 오류가 발생하면 JSONException이 던져지며, catch 블록에서 이를 처리할 수 있습니다.