Spring 컨트롤러에서 Json데이터 받을 때 오류 out of START_ARRAY token DEV / WEB
2020-09-23 posted by sang12
Post형태로 아래와 같은 데이터를 받으려고 하는데... 컨트롤러에서 out of START_ARRAY token 오류가 난다...
[ { "test": 1, "test2": "test"}, { "test": 2, "test2": "test2" } ]
처음에 만들었던 구조는
ResultVo라는 객체안에
List<TestVo> 와 같은 구조를 넣어주고 ResultVo로 해당 Json 데이터를 받으려고해서 오류가 발생했다
(TestVo 는 위 json 데이터를 받기위한 Vo)
-오류나던 부분
private void controller(@RequestBody ResultVo> vo) {
}
-수정
private void controller(@RequestBody List<TestVo> vo) {
}
작업을 하다보니 한가지 방법이 더있어서 공유합니다. 2번째 수정한 방법으로 파라미터를 받게되면. 아래와같은 형태의 데이터를 못받게 됩니다.
{ [ { "test": 1, "test2": "test"}, { "test": 2, "test2": "test2" }] , test3: "test"}
이럴때는 Json 데이터를 아래와같이 변형하여, test1과 test3으로 json을 만들어줍니다
{ test1: { [ { "test": 1, "test2": "test"}, { "test": 2, "test2": "test2" }] } , test3: "test"}
그리고 아래와 같이 Vo를 생성해서 받으면 됩니다. 이때 test1과 test3의 json을 감싸주는 변수의명이 같아야합니다
Class TestVo{
List<Test1Vo> test1;
String test3;
}
1 | |
2024-11-01 13:13:22 |
1
답글