programing

Java에서 XML을 JSON으로 변환하는 가장 빠른 방법

yoursource 2022. 7. 17. 11:18
반응형

Java에서 XML을 JSON으로 변환하는 가장 빠른 방법

Java에서 XML을 쉽고 빠르게 JSON으로 변환하는 데 유용한 툴은 무엇입니까?

JavaJSON에는 몇 가지 뛰어난 리소스가 있습니다.

Maven 의존관계:

<dependency>
  <groupId>org.json</groupId>
  <artifactId>json</artifactId>
  <version>20180813</version>
</dependency>

XML.java찾으시는 클래스입니다.

import org.json.JSONObject;
import org.json.XML;
import org.json.JSONException;

public class Main {

    public static int PRETTY_PRINT_INDENT_FACTOR = 4;
    public static String TEST_XML_STRING =
        "<?xml version=\"1.0\" ?><test attrib=\"moretest\">Turn this to JSON</test>";

    public static void main(String[] args) {
        try {
            JSONObject xmlJSONObj = XML.toJSONObject(TEST_XML_STRING);
            String jsonPrettyPrintString = xmlJSONObj.toString(PRETTY_PRINT_INDENT_FACTOR);
            System.out.println(jsonPrettyPrintString);
        } catch (JSONException je) {
            System.out.println(je.toString());
        }
    }
}

출력:

{"test": {
    "attrib": "moretest",
    "content": "Turn this to JSON"
}}

에서 XML 파일을 JSON으로 변환하려면 다음 종속성을 포함합니다.

<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20140107</version>
</dependency>

Maven Repository에서 Jar를 다운로드할 수 있습니다.다음으로 다음과 같이 구현:

String soapmessageString = "<xml>yourStringURLorFILE</xml>";
JSONObject soapDatainJsonObject = XML.toJSONObject(soapmessageString);
System.out.println(soapDatainJsonObject);

Java에서 JSON의 유일한 문제는 XML에 자식이 하나 있지만 배열인 경우 배열이 아닌 개체로 변환된다는 것입니다.이는 항상 XML에서 JSON으로 동적으로 변환하는 경우 문제를 일으킬 수 있습니다.예를 들어 XML에 요소가1개밖에 없는 경우 오브젝트를 반환하지만 2+인 경우 어레이를 반환하여 JSON을 사용하는 사용자에게 해석 문제가 발생할 수 있습니다.

Infoscoop의 XML2JSON 클래스에는 변환을 수행하기 전에 어레이인 요소에 태그를 지정하는 방법이 있으므로 XML에 하위 항목이 하나만 있더라도 어레이를 적절하게 매핑할 수 있습니다.

다음으로 사용 를 제시하겠습니다(약간 다른 언어이지만 XML2JSON 링크의 nodelist2json() 메서드에서 어레이가 어떻게 사용되는지 확인할 수 있습니다).

빠르고 쉬운 방법: 사용:org.json.XMLjava-json.jar로부터의 클래스

if (statusCode == 200 && inputStream != null) {
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
    StringBuilder responseStrBuilder = new StringBuilder();

    String inputStr;
    while ((inputStr = bufferedReader.readLine()) != null) {
        responseStrBuilder.append(inputStr);
    }

    jsonObject = XML.toJSONObject(responseStrBuilder.toString());
}

이클립스에서 직접 열고 실행할 수 있는 프로젝트를 업로드했습니다.https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA

감사합니다.

정확한 문제가 무엇인지 모르겠지만 XML을 받고 있고 JSON(또는 다른 것)을 반환하고 싶다면 JAX-B도 참조할 수 있습니다.이는 Java POJO를 XML 및/또는 Json으로 마샬링/언마샬링하기 위한 표준입니다.JAX-B를 구현하는 라이브러리가 여러 개 있습니다(예: Apache의 CXF).

언급URL : https://stackoverflow.com/questions/1823264/quickest-way-to-convert-xml-to-json-in-java

반응형