Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- cloud station
- Wraith Spire
- audio station버그
- MFC
- formatting failed
- c++
- github
- JSON
- urllib3
- git
- ds cloud
- truncated
- 라즈베리파이
- SSL 인증서가 변경되었습니다
- linearlaout
- Eclipse
- quickconnect
- windows terminal
- synology
- setonkeylistener
- 이클립스 주석
- java.net.bindexception
- 시놀로지 색인
- 주석 숨김
- Linux
- cloudstation
- SetWindowTextW
- 장치 데이터 오류
- clp 325wk
- IntelliJ
Archives
- Today
- Total
딸기스무디
[Spring] "java.util.LinkedHashMap cannot be cast to Class" 해결 본문
Java
[Spring] "java.util.LinkedHashMap cannot be cast to Class" 해결
strawberry-smoothie 2022. 6. 6. 14:00아래 처럼 클래스의 멤버변수로 다른 클래스가 선언되는 상황에서 @RequestBody annotation을 사용한다고 가정해보자
// pojo
class data_A {
private String field1;
private String field2;
private data_B data_b;
}
class data_B{
private String field1;
}
//JSON
{
"field1" : "A12",
"field1" : "A13",
"data_b" : {
"field1" : "ab11"
}
}
// Controller
@GetMapping(value = "/api/user")
public external_message get_userid_from_telegramid(@RequestBody data_A recvdata){
/* ================ RECEIVE LOGGING ================ */
...
/* ================================================= */
data_B dataB = (data_B) recvdata.getdata_B();
data_A는 알아서 parsing되었지만 data_B의 값을 처리할 때 문제가 발생한다.
data_B dataB = (data_B) recvdata.getdata_B(); 부분에서 "java.util.LinkedHashMap cannot be cast to data_B"라는 java.lang.ClassCastException이 발생할 것이다.
직접 HashMap에 접근하여 값을 세팅해주는 방법도 있겟지만 이렇게 ObjectMapper를 사용하면
LinkedHashMap -> class로 편하게 변환할 수 있다.
ObjectMapper mapper = new ObjectMapper();
data_B _data_B = mapper.convertValue(recvdata.getdata_B(), data_B.class);
끝
'Java' 카테고리의 다른 글
Intellij 한글깨짐 해결 (0) | 2021.08.09 |
---|---|
Gradle 한글 깨짐 해결 (1) | 2021.08.08 |
java - python JSON 소켓 통신 프로그래밍 (0) | 2020.09.19 |
intellij) 현재 프로젝트의 jdk 버전 설정하기 (0) | 2020.09.11 |
intellij) intellij에서 git 사용시 팁 (0) | 2020.09.11 |
Comments