프로그래밍

넥사크로에서 API 호출시 Json Format 오류 발생 해결방법 : JsonFormat(with = Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

넥사크로 UI화면에서 API호출시 List<DTO>타입의 데이터를 인자로 받을때 서버단에서 JSON Format 오류가 발생할 경우가 있다.

오류해결방법

아래쪽 예시와 같이 @JsonFormat(with = Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY) 어노테이션을 정의하여 Single row array로 변환처리 해준다.

DTO란?

DTO는 Data Transfer Object의 약자로 계층 간(Controller, View) 데이터 교환을 위한 Java Bean을 의미한다. DTO는 로직을 가지지 않는 데이터 객체이고, getter, setter 메소드만 가진 클래스를 의미한다.



예시
@Builder
@NoArgsConstructor

@AllArgsConstructor

@Data
public class UserInfoQryDto {
    private long    userId;
    private String  userName;
    private String  email;
    private String  password;

    JsonFormat(with = Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY)

    private List<UserInfoDto> userList;
}


DTO는 가변의 성격을 가진 클래스이며 데이터 전송을 위해 존재한다. 따라서 getter와 setter 기능을 모두 가지고 있다.


VO는 값 그 자체의 의미를 가진 불변 클래스(Read-Only)를 의미한다. 따라서 getter 기능만 존재한다.


→ DTO는 인스턴스 개념이라면, VO는 리터럴 개념으로 이해하면 편하다.

error: Content is protected !!