본문 바로가기

프디아 백엔드

@JsonNaming과 @JsonProperty

FE의 snake vs BE의 camel
어떻게 맵핑해줄 수 있을까요?

 

@JsonNaming

@AllArgsConstructor
@NoArgsConstructor
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
@Data
public class UserRequest {
    private String userName;
    private Integer userAge;
    private String email;
    private Boolean isKorean;
}

@RequestMapping("/api")
@RestController
public class PostApiController {
    @PostMapping("/test")
    public String test(@RequestBody UserRequest request) {

        System.out.println(request);

        return request.toString();
    }

}

 

 

@JsonProperty

Json Property는 변수 위에 직접 이름을 지정한다!!

@AllArgsConstructor
@NoArgsConstructor
@JsonNaming(PropertyNamingStrategies.KebabCaseStrategy.class)
@Data
public class UserRequest {
    private String userName;
    private Integer userAge;
     @JsonProperty(user_email) // 변수위에 직접 이름 지정
    private String email;
    private Boolean isKorean;

 

200 OK로 정상적으로 post 됐음을 알 수 있고 이런 라이브러리를 사용함으로써 FE와 BE사이 변수 형식을 맞출 수 있다!