반응형
open API 사용 중 데이터를 XML를 리턴해 주는 경우가 있습니다.
서버사이드에서 XML을 JSON으로 파싱하여 넘겨 주기 위한 방법 입니다.
우선 필요한 dependency를 추가합니다.
- org.json
- commons-io
//gradle의 경우
url을 읽어 String에 넣는 code
String urlStr = "api_url";
URL url = new URL(urlStr);
BufferedReader bf;
bf = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String result = bf.readLine();
xmlToJson(result);
xml을 Json으로 파싱하는 code
public void xmlToJson(String str) {
try{
String xml = str;
JSONObject jObject = XML.toJSONObject(xml);
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
Object json = mapper.readValue(jObject.toString(), Object.class);
String output = mapper.writeValueAsString(json);
System.out.println(output);
}catch (Exception e) {
e.printStackTrace();
}
}
전체소스
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.json.JSONObject;
import org.json.XML;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
@SpringBootApplication
public class ProtoApplication {
public static void xmlToJson(String str) {
try{
String xml = str;
JSONObject jObject = XML.toJSONObject(xml);
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
Object json = mapper.readValue(jObject.toString(), Object.class);
String output = mapper.writeValueAsString(json);
System.out.println(output);
}catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws ParserConfigurationException, IOException, SAXException {
SpringApplication.run(ProtoApplication.class, args);
String urlStr = "api_url";
URL url = new URL(urlStr);
BufferedReader bf;
bf = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"));
String result = bf.readLine();
xmlToJson(result);
}
반응형
'IT > Spring' 카테고리의 다른 글
Spring Profile 설정법 (0) | 2022.01.07 |
---|---|
DB Replication에 따른 Spring 설정 (0) | 2021.12.10 |
Springboot에서 h2 Database 설정 (399) | 2021.12.10 |
Spring Security 기본 API, filter (0) | 2021.07.08 |
Spring Boot 프로젝트 만들기 (with. 이클립스 Maven) (441) | 2018.06.07 |
댓글