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)

解决方案 »

  1.   

    不要用日期类型,把日期类型转换成String试一下
      

  2.   

    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; }这个是我自己的,你参考下
      

  3.   

    你也可以自己写json再用response写出去啊,无非就是key:value的形式。