메이쁘

[Spring] ... is neither an array nor a List nor a Map; returned value was [] 오류 해결 방법 (@SerializeObject, @RequestParam) 본문

Technology/Web - Spring

[Spring] ... is neither an array nor a List nor a Map; returned value was [] 오류 해결 방법 (@SerializeObject, @RequestParam)

메이쁘 2020. 5. 11. 22:36

 

웹쪽 코딩하다가 발생한 에러.

 

@RequestParam, @SerializeObject 등 Spring POST 로 parameter를 넘길 때 볼 수 있는 에러였다.

 

 

 

 

결론부터 말하자면

 

 

배열도 맵도 리스트도 아닌 값이 들어왔단 소리.

*** 필자는 $.ajax에서 send 하는 data를 <form> 내 input 값을 담은 @SerializeObject를 전송받아 사용하려던 중 발생했다.

 

 

이 값을 console.log로 까보니

 

[] 빈 껍데기만 들어가있다.

 

 

 

 

다른 블로그를 참고해보니

 

 

array = [ { "ele" : value } , { "ele" : value } ] 로 되어있는 배열을 보냈다는 것이다.

 

 

그래서 array[index][ele] = value로 인식해서 오류가 발생한다는 것.

*** 원래라면 array[index].ele = value 와 같이 object로 인식해야 하는데, 배열로 인식했다.

 

 

그럼 해결 방법은 뭐냐?

 

1.  사용하려는 값만 따로 빼서 변수로 보낸다.

ex) var result = result;

 

 

2.   별도 obj를 만들고, 거기에 json으로 값을 넣어주는 것이다.

ex) var obj = {

        ele : value

};

 

 

3.   아직 시도해보지 않았지만 2와 같은 방법으로 obj 안에 List(또는 Array) 로 넣는다.

 

 

 

 

필자는 1로 필요한 변수만 빼와서 2와 같은 방법으로 객체 안에 넣고 진행했다.

 

 

다른 방법은... 없다고 한다...!!!

 

 

 

 

 

감사합니다!

 

 

 

참고
https://m.blog.naver.com/PostView.nhn?blogId=mu_kk&logNo=220617362843&proxyReferer=https:%2F%2Fwww.google.com%2F
Comments