반응형
//ResTemplate 생성
RestTemplate restTemplate = new RestTemplate();
//헤더 생성
HttpHeaders headers = new HttpHeaders();
headers.add("Accept", MediaType.APPLICATION_JSON_VALUE);
headers.add("Content-Type", MediaType.APPLICATION_FORM_URLENCODED_VALUE + ";charset=UTF-8");
//url을 생성해줍니다...
URI url = URI.create("http://testapi.co.kr/v1");
//url을 호출하고 응답을 받는다...
RequestEntity<String> req = new RequestEntity<>(headers, HttpMethod.GET, url);
ResponseEntity<String> res = restTemplate.exchange(req, String.class);
//JSON Object로 body를 얻어본다...
JSONObject jObj = new JSONObject(res.getBody());
//JSON object의 key를 뽑아본다...
Iterator keys = jObj.keys();
//JSON object의 key를 String 리스트에 담아버릴것이다..
List<String> stringKey = new ArrayList<>();
//이제 이 key는 제겁니다.
while(keys.hasNext()) {
String key = keys.next().toString();
stringKey.add(key);
}
//key로 value 갖고오기.
for(int k=0; k< stringKey.size();k++){
JSONObject ob = (JSONObject) jObj.get(stringKey.get(k));
JSONObject dataObj = (JSONObject) ob.get("data");
}
//예시1) API 결과 데이터가 다음과 같은 경우
//[{"a1":"01","a2":"02"},{"b1":11,"b2":12}]
JSONArray ja = new JSONArray(res.getBody());
JSONObject tmpjbj = ja.getJSONObject(0); //결과 : {"a1":"01","a2":"02"}
//예시2) API 결과 데이터가 다음과 같은 경우
//{"no1":{"result":200,"data":{"apple":1,"banana":2}},"no2":{"result":500,"data":{"punch":"teeth","corn":"3"}}}
JSONObject jb = new JSONObject(res.getBody());
JSONObject no1ob = jb.getJSONObject("no1"); //결과 : {"result":200,"data":{"apple":1,"banana":2}}
반응형