struts2转化json问题
String hql="from xxxx";
List<CCCCCCC> list=xxxx.getCPList(hql);
try{
JSONArray json=JSONArray.fromObject(list);
jsonStr=json.toString();
}catch(Exception e){
e.printStackTrace();
}
为什么这样转换就出现异常,CCCCCCC是个实体类里面有 时间类型。上网查了下好像是JSON转化时间的问题,要怎么解决,我自己也测试了,去掉时间的字段就一切正常了。下面是异常信息。
net.sf.json.JSONException:
java.lang.reflect.InvocationTargetException at net.sf.json.JSONObject._fromBean(JSONObject.java:959)
at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
at net.sf.json.JSONObject._processValue(JSONObject.java:2793)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2817)
at net.sf.json.JSONObject.setValue(JSONObject.java:1527)
at net.sf.json.JSONObject._fromBean(JSONObject.java:946)
at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
at net.sf.json.JSONArray._processValue(JSONArray.java:2562)
at net.sf.json.JSONArray.processValue(JSONArray.java:2593)
at net.sf.json.JSONArray.addValue(JSONArray.java:2580)
at net.sf.json.JSONArray._fromCollection(JSONArray.java:1084)
at net.sf.json.JSONArray.fromObject(JSONArray.java:147)
at net.sf.json.JSONArray.fromObject(JSONArray.java:129)
at com.yx.action.TelCpAction.getListCp(TelCpAction.java:120)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
------解决方案--------------------
不要用日期类型,把日期类型转换成String试一下
------解决方案--------------------
Java code
public String query() throws IOException {
sysparamList = doQuery();
ActionContext context = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) context
.get(ServletActionContext.HTTP_RESPONSE);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/json;charset=UTF-8");
JSONArray json = JSONArray.fromObject(sysparamList);
String jsonarray = json.toString();
jsonarray = "{\"jsonarray\":" + jsonarray + "}";
System.out.println(jsonarray);
response.getWriter().write(jsonarray);
return null;
}
------解决方案--------------------
List 最好用JSONArray来转。