마리!
371
2021-06-24 12:22:25
3
221

ajax로 json보낼때 특정한 javaType만 null이 됩니다 ㅜㅜ


데이터를 이렇게 만들어서


클라이언트쪽에서 확인했을때는 -확실히 value가 담겨져있습니다!!


그런데 !!! 이상하게. rgGrade만 받아지고 나머지 항목들은 전부 null값이 뜹니다......ㅜㅡㅜ


물론 pom.xml에 jackson-databind관련 라이브러리도 추가했구요.

이것은 제가 만든 객체의 멤버변수들입니다.

혹시 String이나 Long같은 특정타입만 못받는 법도 있나요....왜 쟤들만 못넘어오는지를 모르겠습니다.

선배님들...ㅜㅜ 부디 그냥 지나치지 마시구 조언 한마디씩만 부탁드립니다...

0
  • 답변 3

  • mj2
    90
    2021-06-25 10:10:52 작성 2021-06-25 10:23:43 수정됨

    회사방침 혹은 개인사정에 의해 사용하는거면 어쩔 수없지만

    ajax 요청 내부의 data 에 JSON.stringify 부분과 contentType 을 통째로 지우고 사용하면 안되나요?

  • 상저씨
    830
    2021-06-25 12:49:15 작성 2021-06-25 13:05:15 수정됨

    lombok으로 @Data를 선언면 @Getter @Setter가 포함됩니다.


    여기서 lombok의 getter, setter 의 naming rule이 java bean naming rule과 다른데요


    jackson은 java bean naming rule에 따라 프로퍼티를 매칭시켜줍니다.


    lombok으로 getter setter를 만들게 되면 프로퍼티의 첫번째 문자를 대문자로 치환합니다.


    rNo의 getter 가 getRNo가 된다는거죠. 


    해결책은 두가지가 있을거 같은데요.


    1. Lombok을 사용하고 DTO의 property별로 @JsonProperty 작성하여 json property name match

    @JsonProperty("rNo")

    private long rNo; 


    2. Lombok을 사용하지 않고 getter setter를 만들어주기




  • 마리!
    371
    2021-06-25 17:20:47

    상저씨

    앗 저번에도 답변 주셨던것같은데!! 정말 감사합니다.ㅜㅡㅜ 그런 규칙이 있었군요. 덕분에 또 배우고 갑니다!! JsonProperty라는 어노테이션도 알게 되었네요!

  • 로그인을 하시면 답변을 등록할 수 있습니다.