순서

공공데이터 링크확인
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();
				}
			}
		}
	}
}

 

+ Recent posts