반응형
//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}}
반응형

+ Recent posts