IT박스

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

itboxs 2020. 6. 2. 19:07
반응형

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


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


Java의 JSON 에는 훌륭한 리소스가 있습니다.

메이븐 의존성 :

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

XML.java 찾고있는 수업입니다.

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

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에 하나의 요소 만있는 경우 개체를 반환하지만 2 이상인 경우 배열을 반환하면 JSON.

Infoscoop의 XML2JSON 클래스에는 변환을 수행하기 전에 배열 인 요소에 태그를 지정하는 방법이 있으므로 XML에 자식이 하나 뿐인 경우에도 배열을 올바르게 매핑 할 수 있습니다.

다음은 이를 사용 하는 예 입니다 (약간 다른 언어이지만 XML2JSON 링크의 nodelist2json () 메소드에서 배열이 사용되는 방법도 볼 수 있습니다).


나는 당신이 일식으로 직접 열 수있는 프로젝트를 업로드하고 모두 https://github.com/pareshmutha/XMLToJsonConverterUsingJAVA를 실행했습니다.

감사합니다


나는 이것을 빠르고 쉬운 방법으로 발견했다 : 사용 : java-json.jar의 org.json.XML 클래스

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

I don't know what your exact problem is, but if you're receiving XML and want to return JSON (or something) you could also look at JAX-B. This is a standard for marshalling/unmarshalling Java POJO's to XML and/or Json. There are multiple libraries that implement JAX-B, for example Apache's CXF.

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

반응형