들어가기 전에...

먼저 프로그램은 모두 간단한 원리부터 파악하고 제작 해야한다.

hello, world!를 출력하는 프로그램이나 공공데이터를 받아와서 출력 하는 프로그램이나 원리는 같다.

코드 길이가 조금 더 길어졌을 뿐이다.

공공데이터를 이용하든, String을 이용하든 결국엔 모듈화 하여 기능을 실행하게 된다.

https://ondolroom.tistory.com/265

 

자바 프로그램을 함수화(모듈화) 하기

*해당 문서는 본인의 사견이 포함되어 있으므로, 정석이 아닌 점을 참고해주세요. 프로그램과 모듈 1. 프로그램 main이 포함되어 있어서 실행이 가능한 코드를 프로그램이라고 한다. 2. 모듈 아래와 같이 main이..

ondolroom.tistory.com

위의 링크 내용을 숙지하고 아래 이미지를 보자

 

 

 

공공데이터 처리

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에서 출력하기!

+ Recent posts