들어가기 전에...
먼저 프로그램은 모두 간단한 원리부터 파악하고 제작 해야한다.
hello, world!를 출력하는 프로그램이나 공공데이터를 받아와서 출력 하는 프로그램이나 원리는 같다.
코드 길이가 조금 더 길어졌을 뿐이다.
공공데이터를 이용하든, String을 이용하든 결국엔 모듈화 하여 기능을 실행하게 된다.
https://ondolroom.tistory.com/265
위의 링크 내용을 숙지하고 아래 이미지를 보자
공공데이터 처리
1.순서
공공데이터 링크확인
http://www.jsonschema2pojo.org/ 으로 Class파일 쉽게 만들기
Gson으로 Json -> 자바객체 전환하기
이용하기
Gson 이 설치 되지 않으신 분들은 미리 설치하시고 시작해주세요
2. 적용 과정
1) 예시로 링크 주소는 공적 마스크 판매 약국 데이터로 한다
https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json?page=1
2) 해당 링크로 인터넷에서 접속해보면 아래와 같이 나온다
3) 해당 데이터를 이용해서 데이터를 담을 Class 를 만들어보자
아래 데이터를 긁어서 http://www.jsonschema2pojo.org/ 사이트에 넣어보자
{
"count": 487,
"page": "1",
"storeInfos": [{
"addr": "충청남도 홍성군 갈산면 상촌로 12-1",
"code": "34840559",
"lat": 36.6029863,
"lng": 126.5489114,
"name": "신신약국",
"type": "01"
}, {
"addr": "대구광역시 달서구 달구벌대로 1736 1층 (두류동)",
"code": "37844571",
"lat": 35.856678,
"lng": 128.5552778,
"name": "밝은온누리약국",
"type": "01"
}],
"totalCount": 26776,
"totalPages": 54
}
Preview를 누르면 각각의 파일이름과 내용이 생성 된다
이클립스에 파일을 만들어서 각각 붙여넣기를 하자
4 ) 공공데이터 출력하기
위 코드에 아래 코드를 넣고 조금만 수정하면된다!
아래코드는 외울 필요 없이 어디 저장해놓고 두고두고 사용하자
try {
// 1번 주소 객체 만들기
URL url = new URL("json링크 주소 입력");
// 2번 스트림 연결
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 3번 버퍼 연결 (문자열)
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
// 4. 문자 더하기
StringBuilder sb = new StringBuilder();
// 스트링빌더에 버퍼에서 받은 문자열을 한줄씩 추가하기
String input = "";
while ((input = br.readLine()) != null) {
sb.append(input);
}
// 입력이 잘 되었는지 테스트
System.out.println(sb.toString());
System.out.println();
br.close(); // 버퍼 닫기
con.disconnect(); // 스트림 닫기
// 5. 자바 오브젝트로 변환
Gson gson = new Gson();
Air air = gson.fromJson(sb.toString(), Air.class);
} catch (Exception e) {
e.printStackTrace();
}
우리가 바꿀 것은 몇가지 없다.
url 주소넣기
자바 오브젝트 이름을 내가 정한 이름으로 바꾸기
리턴해주기
3. main에서 출력하기!
'Programming Language > Java' 카테고리의 다른 글
자바 DB 데이터베이스 연결하기(프로젝트 대비) (0) | 2020.04.26 |
---|---|
자바 공공데이터 + SWING 연동하기(프로젝트 대비) (0) | 2020.04.25 |
자바 프로그램을 함수화(모듈화) 하기 (프로젝트 대비) (0) | 2020.04.25 |
스윙 컴포넌트 - 버튼, 리스너 (0) | 2020.04.24 |
자바 다양한 시간 포맷팅 방법 (0) | 2020.04.24 |