먼저 공공데이터 사이트에서 위와같이 설정하고 미리보기를 한다

미리보기 창이 뜨면 해당 주소를 모두 복사한다

주소 맨뒤에  &_type=json을 붙이고 검색해본다

 

코드 이용꿀팁

해당 코드들을

http://json.parser.online.fr/

사이트에 붙여넣어본다

 

같은 코드를 아래 사이트에도 붙여넣기하여

http://www.jsonschema2pojo.org/

package이름을 설정하고

class이름도 설정한다

나머지 설정도 아래와 같이하고

preview를 누른다

 

아래와 같이 뜨면

Air.java / Body.java 등의 파일을 만들어서 각각 붙여넣는다

 

아래와 같이 생성하고 붙여넣으면된다

 

 

Item.java파일에서 몇가지를 수정한다

 

gson이용하기

클래스 생성은 끝났다
Json자료를 gson을 이용하여 클래스에 자료를 집어 넣어서 인스턴스를 생성한다

"여기에 주소를넣으세요" 부분에 &_type=json을 붙인 주소를 넣는다

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");

		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

HTTPURL 스트림을 연결한다

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

버퍼를 연결한다

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
			// 3번 버퍼연결(문자열)
			BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

StStringBuilder를 넣는다 StringBuilder는 String을 배열로 저장하여 나중에 한번에 출력하게 해준다

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
			// 3번 버퍼연결(문자열)
			BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
			
			// 4번 StringBuilder는 ArrayList<String>과 비슷하다
			// append로 String을 저장한뒤 호출하면 쭉 읽는다
			StringBuilder sb = new StringBuilder();
			String input = "";
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

while문으로 StringBuilder타입의 sb에 데이터를 넣는다

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
			// 3번 버퍼연결(문자열)
			BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
			
			// 4번 StringBuilder는 ArrayList<String>과 비슷하다
			// append로 String을 저장한뒤 호출하면 쭉 읽는다
			StringBuilder sb = new StringBuilder();
			String input = "";
			
			while ((input = br.readLine()) != null) {
				sb.append(input);
			}
			System.out.println(sb.toString());
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

gson을 이용하여 Air타입의 인스턴스 만들기

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를넣으세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
			// 3번 버퍼연결(문자열)
			BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
			
			// 4번 StringBuilder는 ArrayList<String>과 비슷하다
			// append로 String을 저장한뒤 호출하면 쭉 읽는다
			StringBuilder sb = new StringBuilder();
			String input = "";
			
			while ((input = br.readLine()) != null) {
				sb.append(input);
			}
			System.out.println(sb.toString());
			
			// gson을 이용하여 Air타입의 인스턴스 만들기
			Gson gson = new Gson();
			
			Air air1 = gson.fromJson(sb.toString(), Air.class);
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

아래와 같이 뜨면 성공

 

테스트

package ch15;

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

import com.google.gson.Gson;

public class NetworkEx0201 {
	
	public static void main(String[] args) {

		try {
			// 1번 주소 객체 만들기
			URL url = new URL("여기에 주소를 입력하세요");
			
			// 2번 스트림 연결
			HttpURLConnection con = (HttpURLConnection) url.openConnection();
			
			// 3번 버퍼연결(문자열)
			BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
			
			// 4번 StringBuilder는 ArrayList<String>과 비슷하다
			// append로 String을 저장한뒤 호출하면 쭉 읽는다
			StringBuilder sb = new StringBuilder();
			String input = "";
			
			while ((input = br.readLine()) != null) {
				sb.append(input);
			}
			System.out.println(sb.toString());

			// gson을 이용하여 Air타입의 인스턴스 만들기
			Gson gson = new Gson();
			
			Air air1 = gson.fromJson(sb.toString(), Air.class);
			
			// 테스트해본다
			System.out.println("항공사 : " + air1.getResponse().getBody().getItems().getItem().get(0).getAirlineNm());
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
}

 

 

 

 

 

+ Recent posts