일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- SQL
- 프로그래머스
- 프로젝트 여러 개
- 봤어요처리
- javascript error
- DART
- db
- @RequestBody
- REST
- class-transformer
- node.js
- InteliJ
- Aspect
- JavaScript
- 인텔리제이
- datagrip 한글깨짐
- Mac
- 코어자바스크립트
- Stream
- eqauls-hashcode
- svn
- oracle
- MySQL
- TypeScript
- flutter mac 설치
- Java
- tecoble
- ojdbc6
- Spring
- maven
Archives
- Today
- Total
개발자가 되고 싶은 개발자
[Spring] @RequestBody로 받아온 데이터가 null일 때 본문
상황
API를 호출하여 컨트롤러에서 @RequestBody 어노테이션을 사용하여 데이터를 받아왔습니다.
하나의 데이터를 제외한 나머지는 정상적으로 받아오고, 특정 값만 받아오지 못하여 문제가 되었습니다.
해결책
"Spring mvc uses jackson to parse json by default.
It is guessed whether the field name of the entity class is changed when the field name is converted to json."
Spring은 json파싱을 위해 기본값으로 jackson 라이브러리를 사용한다고 합니다.
필드명을 아래와 같은 형태로 작성하게 되면 IDE혹은 Lombok에서 자동생성해주는 Getter/Setter의 메소드명은
카멜케이스와 맞지 않게 됩니다.
private String tTestField;
private String TTestField;
제 경우도 인텔리제이에서 생성해준 Getter때문에 발생한 문제였고 필드명을 수정하여 해결하였습니다.
필드명을 수정하고 싶지 않은 경우에는 다음과 같이 직접 프로퍼티 명을 명시하여 해결할 수 있습니다.
@JsonProperty(value = "tTestField")
public String getTTestField() {
return tTestField;
}
'Dev > Java & Spring' 카테고리의 다른 글
[Java] JVM 메모리 구조 (0) | 2022.01.01 |
---|---|
[Java] Comparator (0) | 2021.12.24 |
[Spring] Spring Batch (0) | 2021.11.06 |
[Java] Stream (0) | 2021.10.05 |
[Log4j2] Log4j2- PatternLayout (0) | 2021.10.05 |