본문 바로가기

코딩/Spring

Spring ajax json 및 데이터 가져오기

오랜만에 글을 쓴다...

 

spring 사용하면서 ajax 통신 사용 시 json 데이터를 가져올때 어떻게 해야할지 알아보자. (사실 안까먹으려고...)

 

 var data = {
        "데이터1": 데이터1,
        "데이터2": 데이터2,
        "데이터3": 데이터3,
    }

    $.ajax({
        anyne: true,
        type: "POST",
        contentType: 'application/json',
        url: "url",
        dataType: "json",
        data: JSON.stringify(data),
        success: function (data) {
            console.log(data);
        }
    });

이런 데이터를 보내려고한다고 예시를 들어보자.

 

 

그럼 스프링에서는 어떻게 받아야할까???

 

    @PostMapping("url")
    @ResponseBody
    public boolean 함수이름(@RequestBody Map<String, Object> data) { 

        ObjectMapper mapper = new ObjectMapper();
        List<MenuDTO> menuDTOList = mapper.convertValue(data.get("데이터1"), new TypeReference<List<DTOclass>>() {});

        return true;

    }

 

만약 데이터1이 json이라면? 위와같이 받아오면 편하다. mapper를 사용하여 dto클래스로 변경해주었다.

일반 string 같은 데이터라면?

 

아래와 같이 하면된다.

 

    @PostMapping("url")
    @ResponseBody
    public boolean 함수이름(@RequestBody Map<String, Object> data) {

 		String 변수명 = (String) data.get("데이터2");

        return true;

    }

 

 

위와같이 해결이 가능하다.

 

매우 쉽다~~