Date类型字段转换为json时的问题(转载)

标签:
jsonjava.util.date杂谈 |
分类: 前台 |
问题:
举例:
-
Tariff
bean new= Tariff(); - bean.setName("Robby");
- bean.setAge(1);
- bean.setBorn(new
Date());
解决方法:添加自定义的日期格式转化类
- package
com.techson.himsnanhwa.admin.util; -
- import
java.text.SimpleDateFormat; - import
java.util.Date; - import
java.util.Locale; -
- import
net.sf.json.JsonConfig; - import
net.sf.json.processors.JsonValueProcessor; -
- public
class JsonDateValueProcessor implementsJsonValueProcessor { -
-
private String "yyyy-MM-dd";format = -
-
public Object processArrayValue(Object value, JsonConfig config) { -
return process(value); -
} -
-
public Object processObjectValue(String key, Object value, JsonConfig config) { -
return process(value); -
} -
-
private Object process(Object value){ -
-
if(value instanceof Date){ -
SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK); -
return sdf.format(value); -
} -
return value null== ? "": value.toString(); -
} - }
调用:
-
Tariff
bean new= Tariff(); - bean.setName("Robby");
- bean.setAge(1);
- bean.setBorn(new
Date()); -
-
JsonConfig
jsonConfig = new JsonConfig(); //JsonConfig是net.sf.json.JsonConfig中的这个,为固定写法 - jsonConfig.registerJsonValueProcess
or(Date.class , newJsonDateValueProcessor()); -
-
JSONObject
jo = JSONObject.fromObject(bean, jsonConfig); - System.out.println("json:"
+ jo.toString()); -
- 结果:json:{"age":1,"born":"2011-05-31","name":"Robby"}
-
jsonConfig.registerJsonValueProcess
or(java.util.Date. class,new JsonDateValueProcessor( "yyyy-MM-dd"));