-
[JAVA] 도서관 정보나루 오픈 API 가져오기공부/Java 2022. 9. 20. 08:12
프로젝트에서 쓸 데이터를 가져오기 위해 도서관 정보나루 오픈 api를 사용할 일이 생겼다.
https://www.data4library.kr/bigdata
아래 코드는 도서관에 존재하는 책 데이터 100가지를 불러와 출력하는 코드이다.
인증키의 경우 회원가입후 인증키 달라고 요청하면 평일에는 3시간내로 발급해준다.
👨💻 코드
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; public class BookApIService { public static void getBookApi(){ String authKey = ""; //인증키 String libCode = "142041"; //도서관 코드 String pageNo = "1"; //페이지 번호 String pageSize = "100"; //페이지 사이즈 try { URL url = new URL("http://data4library.kr/api/itemSrch?type=ALL" + "&libCode=" + libCode + "&pageNo=" + pageNo + "&pageSize=" +pageSize + "&authKey=" + authKey + "&format=json&"); BufferedReader bf; bf = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8")); String result = bf.readLine(); JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(result); JSONObject bookListJson = (JSONObject) jsonObject.get("response"); JSONArray docs = (JSONArray) bookListJson.get("docs"); for(int i = 0; i<docs.size();i++){ JSONObject temp = (JSONObject) docs.get(i); JSONObject doc = (JSONObject) temp.get("doc"); System.out.println("bookname : " + doc.get("bookname")); System.out.println("authors : " + doc.get("authors")); System.out.println("publisher : " + doc.get("publisher")); System.out.println("publication_year : " + doc.get("publication_year")); System.out.println("isbn13 : " + doc.get("isbn13")); System.out.println("bookImageURL : "+doc.get("bookImageURL")); System.out.println(); } } catch (Exception e){ e.printStackTrace(); } } public static void main(String[] args) { getBookApi(); } }
결과
'공부 > Java' 카테고리의 다른 글
대부분의 자바 프로젝트는 왜 8.0버전 선호할까? (0) 2022.07.05