자바

공공데이터 가져오기

열곰탱 2022. 8. 22. 17:31

공공데이터포털에서 회원가입을 합니다.

 

기상청_단기예보 라는 공공데이터를 가지고 왔습니다.

 

여러개의 상세기능정보가 있습니다.

그중에서 초단기실황조회를 가지고오겠습니다.

 

 

 

ServiceKey에는 위에 일반 인증키(Encoding) 값을 그대로 복사해서 붙여놓으면 됩니다.

pageNo = 1

numOfRows = 1000

dataType 같은경우 xml형식과 JSON형식으로 가지고 올수 있습니다.

날짜는 오늘 날짜로 가지고오겠습니다.

 

 

 

왼쪽은 JSON형식으로 불러온것이고, 오른쪽은 XML형식으로 불러온것입니다.

이번에는 JSON형식을 활용해서 공공데이터를 불러오도록 하겠습니다.

 

OpenAPI 정보에 참고 문서 파일이 있습니다.

 

파일이 두개가 있습니다.

 

원하는 지역의 격자,경도,위도가 나옵니다.

 

격자 X, 격자 Y값을  요청변수에서 nx, ny값에 넣어주면 됩니다.

 

값들을 입력하고 미리보기를 누르면 아래와 같이 나옵니다.

순서대로 하나씩  만들어볼것이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

생성자와 getter,setter를 만들어준다.

 

 

 

Gson 라이브러리 다운

 

 

라이브러리 추가

 

밑에 사진 url 링크는 json형식의 미리보기를 사용한다.

 

최종성공문

 

package communication;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import com.google.gson.Gson;

public class GongEx1 {

	public static void main(String[] args) {
		try {
			
			//url 주소
			URL url =new URL("http://apis.data.go.kr/1360000/VilageFcstInfoService_2.0/getUltraSrtNcst?serviceKey=rcT1ycDhOpegG%2BFKENvjfoFCvU44lY1WF3cJEnKPW6DVp8wgMSp1Xkm4IO%2BDxciowvIXhDumKHgCmqEKQTCFvg%3D%3D&pageNo=1&numOfRows=1000&dataType=json&base_date=20220822&base_time=2200&nx=98&ny=75");
			
			//url을 연결
			//HttpURLConnection은 http 통신을 수행할 객체이다.
			HttpURLConnection conn = (HttpURLConnection)url.openConnection();
			
			// 데이터를 BufferReader를 이용해 담아준다.
			BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
			
			StringBuilder sb = new StringBuilder();
			String temp="";
			
			//버퍼에 담긴 아이디가 null 이아니라면 출력해준다.
			while((temp = br.readLine()) !=null) {
				sb.append(temp);
				System.out.println(temp);
			}
			Gson gson = new Gson();
			RespDto respDto = gson.fromJson(sb.toString(), RespDto.class);
			
			String temperature = respDto.getResponse().getBody().getItems().getItem().get(3).getObsrValue();
			System.out.println(temperature);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}

 

 

 

jsonviewer

google에 jsonviewer검색

이렇게 하면 json을 보기 쉽다.