컨트롤러단에서 json형태로 null이 담긴 데이터를 view에 담아 보내면 에러가발생합니다..
- 작성자 :
- 주*덕
- 작성일 :
- 2016-10-19 13:32:25
- 조회수 :
- 4,560
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요.
List<Map<String,Object>> dpList = dutyPositionService.getCompDutyPositionList(params);
JSONArray jsonDp = new JSONArray();
jsonDp = JSONArray.fromObject(dpList);
mv.addObject("dpList", jsonDp);
mv.setViewName("jsonView");
return mv;
현재 위와같은 방식으로 dpList에 db에서 가져온 데이터를 담고 jsonarray객체로 파싱해서 담은후에
mv를 리턴을 시켜주면
Caused by: net.sf.json.JSONException: null object
at net.sf.json.JSONObject.verifyIsNull(JSONObject.java:2856)
at net.sf.json.JSONObject.isEmpty(JSONObject.java:2212)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:182)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23)
at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262)
... 92 more
와같이 에러가나네요..
db컬럼값에 null이 담긴 데이터가 있어서 나는 오류인것 같은데 db조회할때 null값일때 공백처리하는 법 말고
근본적으로 해결할수 있는 방법이 따로 있을까요??
jsonView를
<bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
<property name="jsonConfig" ref="jsonConfig" />
</bean>
와같이 등록을 사용을 했었는데 이걸로 썻을경우에는 date형식이 존재할때 리턴시 오류가 발생해
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
</bean>
이걸로 바꿔서 사용을 해보니까.. date형식은 오류없이 리턴이 되는데 jsonarray로 파싱시 null이 존재하면 오류가 발생을하네요....
애타게 답변 기다리겟습니다.ㅠㅠ 감사합니다
List<Map<String,Object>> dpList = dutyPositionService.getCompDutyPositionList(params);
JSONArray jsonDp = new JSONArray();
jsonDp = JSONArray.fromObject(dpList);
mv.addObject("dpList", jsonDp);
mv.setViewName("jsonView");
return mv;
현재 위와같은 방식으로 dpList에 db에서 가져온 데이터를 담고 jsonarray객체로 파싱해서 담은후에
mv를 리턴을 시켜주면
Caused by: net.sf.json.JSONException: null object
at net.sf.json.JSONObject.verifyIsNull(JSONObject.java:2856)
at net.sf.json.JSONObject.isEmpty(JSONObject.java:2212)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:182)
at org.codehaus.jackson.map.ser.std.MapSerializer.serialize(MapSerializer.java:23)
at org.codehaus.jackson.map.ser.std.MapSerializer.serializeFields(MapSerializer.java:262)
... 92 more
와같이 에러가나네요..
db컬럼값에 null이 담긴 데이터가 있어서 나는 오류인것 같은데 db조회할때 null값일때 공백처리하는 법 말고
근본적으로 해결할수 있는 방법이 따로 있을까요??
jsonView를
<bean id="jsonView" class="net.sf.json.spring.web.servlet.view.JsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
<property name="jsonConfig" ref="jsonConfig" />
</bean>
와같이 등록을 사용을 했었는데 이걸로 썻을경우에는 date형식이 존재할때 리턴시 오류가 발생해
<bean id="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
<property name="contentType" value="application/json;charset=UTF-8"/>
</bean>
이걸로 바꿔서 사용을 해보니까.. date형식은 오류없이 리턴이 되는데 jsonarray로 파싱시 null이 존재하면 오류가 발생을하네요....
애타게 답변 기다리겟습니다.ㅠㅠ 감사합니다
A
주성덕님 안녕하세요.
표준프레임워크센터입니다.
문의하신 내용은
관련 필터를 직접 구현하시거나
말씀하신대로 json으로 변환하기 전에 null값을 변경해주셔야 할 것 같습니다.
감사합니다.
p.s
org.json.simple 의 라이브러리를 사용하는 방법에 대한 정보가 있지만,
테스트를 해보셔야 할 것 같습니다.
(http://blog.naver.com/limeof/220596002626)
표준프레임워크센터입니다.
문의하신 내용은
관련 필터를 직접 구현하시거나
말씀하신대로 json으로 변환하기 전에 null값을 변경해주셔야 할 것 같습니다.
감사합니다.
p.s
org.json.simple 의 라이브러리를 사용하는 방법에 대한 정보가 있지만,
테스트를 해보셔야 할 것 같습니다.
(http://blog.naver.com/limeof/220596002626)