반응형
개발 가이드 ) https://developers.kakao.com/docs/latest/ko/local/dev-guide
카카오 다음지도 API ) http://apis.map.kakao.com/
JSONObject, JSONArray 는 아래 라이브러리를 이용했음
Json Simple 라이브러리 ) https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple
요청 코드
String lat = "";
String lng = "";
String city = "인천광역시 서구 경서동";
RestTemplate rest = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//다음지도 API를 사용할 때에는 header에 Authorization이라는 이름으로 서비스키값 전송
String appkey = "KakaoAK {api서비스키값}";
headers.set("Authorization", appkey);
HttpEntity<String> entity = new HttpEntity<String>("parameters",headers);
String encode = URLEncoder.encode(city, "UTF-8");
String rawURI = "https://dapi.kakao.com/v2/local/search/address.json?query=" + encode;
URI uri = new URI(rawURI);
ResponseEntity<String> res = rest.exchange(uri, HttpMethod.GET, entity, String.class);
JSONParser jsonParser = new JSONParser();
JSONObject body = (JSONObject) jsonParser.parse(res.getBody().toString());
JSONArray docu = (JSONArray) body.get("documents");
if(docu.size() != 0) {
JSONObject addr = (JSONObject)docu.get(0);
if(addr.size() != 0) {
JSONObject addr1 = (JSONObject) addr.get("address");
if(b_code.length() < 1) {
b_code = ((String) addr1.get("b_code")).substring(0, 5);
}else {
b_code = ((String) addr1.get("h_code")).substring(0, 5);
}
}
}
넘어오는 값
[{"address":
{"sub_adderss_no":"",
"h_code":"",
"region_3depth_name":"경서동",
"main_address_no":"",
"address_name":"인천 서구 경서동",
"main_adderss_no":"",
"region_2depth_name":"서구",
"region_3depth_h_name":"",
"region_1depth_name":"인천",
"b_code":"2826010400",
"zip_code":"",
"mountain_yn":"N",
"x":"126.65133717694862",
"sub_address_no":"",
"y":"37.55618232744196"},
"address_type":"REGION",
"x":"126.65133717694862",
"y":"37.55618232744196",
"address_name":"인천 서구 경서동",
"road_address":null
}]
JSONObject, JSONArray 를 이용해 데이터 파싱해서 사용하기
'자바' 카테고리의 다른 글
Autowired해줬는데도 NullException뜰 때 [Java, Spring Boot] (0) | 2024.02.19 |
---|---|
jasypt 라이브러리를 이용해 민감정보 숨기기 [Java, Spring Boot, jasypt] (0) | 2021.06.23 |
스프링 부트 스케쥴러 생성 [Java, Spring Boot, Scheduler] (0) | 2021.06.23 |
로그인 성공, 실패 핸들러 작성 feat. 로그인 실패 시 alert 띄우기 [Java, Spring Security] (0) | 2021.06.23 |