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를 실행했습니다.
감사합니다
답변
나는 이것을 빠르고 쉬운 방법으로 발견했다 : 사용 : org.json.XML
java-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());
}
답변
정확한 문제가 무엇인지 모르겠지만 XML을 수신하고 JSON (또는 다른 것)을 반환하려는 경우 JAX-B를 볼 수도 있습니다. 이것은 Java POJO를 XML 및 / 또는 Json에 마샬링 / 언 마샬링하기위한 표준입니다. JAX-B를 구현하는 여러 라이브러리 (예 : Apache CXF)가 있습니다.
답변
