티스토리 뷰

Spring Framework

복잡한 JSON 파싱

터프남 2021. 9. 23. 14:13
728x90

API 요청시 응답 값

{
    "response": {
        "service": {
            "name": "address",
            "version": "2.0",
            "operation": "getAddress",
            "time": "5(ms)"
        },
        "status": "OK",
        "input": {
            "point": {
                "x": "126.978275264",
                "y": "37.566642192"
            },
            "crs": "epsg:4326",
            "type": "ROAD"
        },
        "result": [
            {
                "zipcode": "04524",
                "type": "road",
                "text": "서울특별시 중구 세종대로 110 (태평로1가,서울특별시 청사)",
                "structure": {
                    "level0": "대한민국",
                    "level1": "서울특별시",
                    "level2": "중구",
                    "level3": "태평로1가",
                    "level4L": "세종대로",
                    "level4LC": "2005001",
                    "level4A": "명동",
                    "level4AC": "1114055000",
                    "level5": "110",
                    "detail": "서울특별시 청사 신관"
                }
            }
        ]
    }
}

내가 필요한건 result 값만 필요함.

@GetMapping("/api/coordinatesToAddress")
public ResponseEntity restTemplateTest(@RequestParam String point) {

    String url = "http://api.vworld.kr/req/address";
    UriComponents uri = UriComponentsBuilder.fromHttpUrl(url)
            .queryParam("service", "address")
            .queryParam("request", "getAddress")
            .queryParam("key", "key값")
            .queryParam("crs", "epsg:4326")
            .queryParam("point", point)
            .queryParam("type", "BOTH")
            .build();

    ResponseEntity<String> resultAPI = restTemplate.exchange(uri.toString(), HttpMethod.GET, null, String.class);

 	JSONParser parser = new JSONParser();
    JSONObject parse = (JSONObject) parser.parse(resultAPI.getBody());
    JSONObject response = (JSONObject) parse.get("response");
    JSONArray result = (JSONArray) response.get("result");
    JSONObject roadName = (JSONObject) result.get(0);
    JSONObject structure = (JSONObject) roadName.get("structure");
    String roadText = (String) roadName.get("text");

    ....
}

 

728x90
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함