순서
공공데이터 링크확인
http://json.parser.online.fr/ 으로 JSON구조확인하기
http://www.jsonschema2pojo.org/ 으로 Class파일 쉽게 만들기
Gson으로 Json -> 자바객체 전환하기
이용하기
먼저 공공데이터 링크를 확인한다
http://json.parser.online.fr/ 으로 JSON구조확인하기
위 사이트는 json을 보기쉽게 해준다 (자바에서 이용할때 참조)
http://www.jsonschema2pojo.org/ 으로 Class파일 쉽게 만들기
위 사이트에 json을 붙여넣고 아래와 같이 설정을한뒤
preview를 한다
package mask;
import java.util.List;
public class MaskInfo {
private long count;
private String page;
private List<StoreInfo> storeInfos = null;
private long totalCount;
private long totalPages;
public long getCount() {
return count;
}
public void setCount(long count) {
this.count = count;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public List<StoreInfo> getStoreInfos() {
return storeInfos;
}
public void setStoreInfos(List<StoreInfo> storeInfos) {
this.storeInfos = storeInfos;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
}
public long getTotalPages() {
return totalPages;
}
public void setTotalPages(long totalPages) {
this.totalPages = totalPages;
}
}
package mask;
public class StoreInfo {
private String addr;
private long code;
private double lat;
private double lng;
private String name;
private String type;
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public long getCode() {
return code;
}
public void setCode(long code) {
this.code = code;
}
public double getLat() {
return lat;
}
public void setLat(double lat) {
this.lat = lat;
}
public double getLng() {
return lng;
}
public void setLng(double lng) {
this.lng = lng;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
Gson으로 Json -> 자바객체 전환하기
이용하기
package mask;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.google.gson.Gson;
public class MaskApp {
public static long maskPage() {
try {
// 1번 주소 객체 만들기
URL url = new URL("https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json?page=1");
// 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();
MaskInfo mask = gson.fromJson(sb.toString(), MaskInfo.class);
long count = mask.getTotalPages();
return count;
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
public static MaskInfo maskInfo(int page) {
try {
// 1번 주소 객체 만들기
URL url = new URL("https://8oi9s0nnth.apigw.ntruss.com/corona19-masks/v1/stores/json?page=" + page);
// 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();
MaskInfo mask = gson.fromJson(sb.toString(), MaskInfo.class);
return mask;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
System.out.println("지역을 입력하세요");
Scanner sc = new Scanner(System.in);
String loc = sc.nextLine();
List<StoreInfo> test = maskInfo(1).getStoreInfos();
maskInfo(1).getStoreInfos().get(0).getAddr();
ArrayList<MaskInfo> maskInfoList = new ArrayList<>();
for (int i = 1; i < 1 + 1; i++) { // maskPage() 넣어야함
MaskInfo mask = maskInfo(i);
maskInfoList.add(mask);
}
for (MaskInfo maskInfo : maskInfoList) {
for (int i = 0; i < maskInfo.getStoreInfos().size(); i++) {
if (maskInfo.getStoreInfos().get(i).getAddr().contains(loc)) {
System.out.println(maskInfo.getStoreInfos().get(i).getAddr());
System.out.println(maskInfo.getStoreInfos().get(i).getName());
System.out.println();
}
}
}
}
}
'Programming Language > Java' 카테고리의 다른 글
200413 멀티프로세싱, 쓰레드, 문맥교환, IPC, 콜백, 익명클래스 (0) | 2020.04.13 |
---|---|
자바 기본자료형 클래스자료형 차이 이해하기 (0) | 2020.04.11 |
jsonchema2pojo 체크 포인트 (0) | 2020.04.10 |
이클립스 자바 자동완성 편하게하기 (0) | 2020.04.08 |
자바 공공데이터 이용 정보 출력하기 (0) | 2020.04.07 |