먼저 공공데이터 사이트에서 위와같이 설정하고 미리보기를 한다
미리보기 창이 뜨면 해당 주소를 모두 복사한다
주소 맨뒤에 &_type=json을 붙이고 검색해본다
코드 이용꿀팁
해당 코드들을
사이트에 붙여넣어본다
같은 코드를 아래 사이트에도 붙여넣기하여
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();
}
}
}
'Programming Language > Java' 카테고리의 다른 글
jsonchema2pojo 체크 포인트 (0) | 2020.04.10 |
---|---|
이클립스 자바 자동완성 편하게하기 (0) | 2020.04.08 |
자바 네이버 html 코드 출력하기 (0) | 2020.04.07 |
자바 Json to java, java to Json (0) | 2020.04.06 |
자바 InputStream, InputStreamReader, BufferedReader (0) | 2020.04.06 |