[Java] REST API 호출 + JSON Parsing

개발자·2022년 1월 5일
post-thumbnail

API를 호출해 json 데이터를 받아와 Parsing해 DB에 데이터를 넣어줘야 할 일이 생겼다.
열심히 구글링을 해서 개발했다.

소스 코드

// REST API 호출
URL url = new URL("https://~~~");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();

conn.setRequestMethod("GET");
conn.setRequestProperty("Content-Type", "application/json"); // Content-Type 지정
conn.setDoOutput(true); // 출력 가능 상태로 변경
conn.connect();
			    
// 데이터  읽어오기
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
StringBuilder sb = new StringBuilder();
String line = "";
while((line = br.readLine()) != null) {
	sb.append(line); // StringBuilder 사용시 객체를 계속 생성하지 않고 하나의 객체릂 수정하므로 더 빠름.
}
conn.disconnect();

// JSON Parsing
JSONObject jsonObj = (JSONObject) new JSONParser().parse(sb.toString());

jsonObj.get("name"); // 이런 방식으로 데이터 꺼낼 수 있음.

➕ 추가 ❗
Azure 서버에 올려 테스트를 해보니 한글이 깨지는 오류가 발생했다 ㅠㅠ
처음엔 DB 설정 문제인가 했는데 고쳐도 안되길래 검색해보니 파일을 읽어올 때 문제였다.
한글이 깨지지 않으려면 아래 코드 끝 부분 처럼 UTF-8을 추가해주어야 한다!

BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));

Ref

profile
log.info("공부 기록 블로9")

0개의 댓글