New World

[JSON] gson.fromJson(json,type) 해결방법 본문

Programming/Bug Zero

[JSON] gson.fromJson(json,type) 해결방법

hyeovi 2023. 5. 22. 21:49
728x90
반응형

회사에 다니면서 이런 저런 에러들과 맞부딪히게 되었다.

뭐.. 일을 잘하거나 하는 것은 아니지만 이번 gson 해결을 통해 미래에 이런 실수가 나지 않도록 조심하기 위해 작성한다. 또는 저와 같은 분들... 이것 때문에 이틀 밤샘했어요ㅠㅠㅠㅠㅠㅠㅠ 너무나도 멍청한 저....

 

우선!!! 나를 애먹었던 코드들...

 

//TestServiceImpl.java

TestVO testVO8 = new TestVO(); 
List<MulticlutureVO> List_testVO8 = new ArrayList<TestVO>(); 		
testVO8 = gson.fromJson(JsonUtil.SqlInjectionToString(vo.getTbltestresultJson()),TestVO.class); //문제가 되는 코드 (2023-05-22)
List_testVO8 = multiclutureVO8.getList_testresultVO();

 

저 코드 중 gson.fromJson(json,type) 에서 json 까지는 제대로 list 형식으로 아래와 같이 값을 가져왔으나 type으로 변경되는 부분에서 문제가 발생했다

 

[{'cat_cnt':'0',' dog':'0',' flog':'0',' cow_cnt':'0'}]

 

이 값은 jsp에서 Json 형식으로 만들어서 가져와 주던 값이었는데...

 

value = "tbltestresultJson";
id = "tbl_testresult";
Json = "List_testresultVO";
//Column = "cat_cnt, dog, flog, cow_cnt"; //문제가 되던 코드
Column = "cat_cnt,dog,flog,cow_cnt"; //해결한 코드
ListToJson(value,id,Json,Column);

위와 같이 값을 넣어줄 Column에서 값 중간중간에 있는 띄어쓰기 때문에 필드 앞에 띄어쓰기가 포함되어 띄어쓰기가 포함된 필드를 VO에서 찾지 못해 발생한 문제였다. 띄어쓰기가 포함되지 않은 필드를 사용할 것이므로 위와 같이 해결한 코드처럼 필드 중간중간에 있던 띄어쓰기를 없애주면 문제가 해결된다.

반응형
Comments