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
'IT박스' 카테고리의 다른 글
OS X에 brew, node.js, io.js, nvm, npm을 설치하는 제안 된 방법은 무엇입니까? (0) | 2020.06.03 |
---|---|
스칼라에 로그인 (0) | 2020.06.02 |
제네릭 형식 매개 변수를 문서화하기위한 javadoc 태그가 있습니까? (0) | 2020.06.02 |
차이 알고리즘? (0) | 2020.06.02 |
모든 gcc 경고 비활성화 (0) | 2020.06.02 |