list对象转json 解决办法

来源:互联网 发布:如何用淘宝内部券赚钱 编辑:程序博客网 时间:2024/05/16 19:10

需要将一个List<Base> 转换成json,但是报如下错:

net.sf.json.JSONException: java.lang.reflect.InvocationTargetException

catch了一下发现是日期转换的问题,json默认转换成java.sql.Date 而我的Base有字段是java.util.Date,

但是原Base实体又不能动,所以改变了json的转换方式:

代码:

JsonConfig jsonConfig = new JsonConfig();jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());JSONArray obj = JSONArray.fromObject(datas,jsonConfig);


代码:
class JsonDateValueProcessor implements JsonValueProcessor {    private String datePattern = "yyyy-MM-dd";    public JsonDateValueProcessor() {          super();      }      public JsonDateValueProcessor(String format) {          super();          this.datePattern = format;      }      public Object processArrayValue(Object value, JsonConfig jsonConfig) {          return process(value);      }      public Object processObjectValue(String key, Object value,              JsonConfig jsonConfig) {          return process(value);      }      private Object process(Object value) {          try {              if (value instanceof Date) {                  SimpleDateFormat sdf = new SimpleDateFormat(datePattern, Locale.UK);                  return sdf.format((Date) value);              }              return value == null ? "" : value.toString();          } catch (Exception e) {              return "";          }      }      public String getDatePattern() {          return datePattern;      }      public void setDatePattern(String pDatePattern) {          datePattern = pDatePattern;      }  }


原创粉丝点击