含有Timestamp、Date的bean和Json相互转换
来源:互联网 发布:手机淘宝卖家联系方式 编辑:程序博客网 时间:2024/05/22 02:18
import java.text.SimpleDateFormat;
import java.util.Date;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
* 将Bean中的Timestamp、Date转换为json中的日期字符串
* @author weijie
*
*/
public class DateJsonValueProcessor implements JsonValueProcessor {
public static final String Default_DATE_PATTERN = "yyyy-MM-dd";
private DateFormat dateFormat;
public DateJsonValueProcessor(String datePattern) {
try {
dateFormat = new SimpleDateFormat(datePattern);
} catch (Exception e) {
dateFormat = new SimpleDateFormat(Default_DATE_PATTERN);
}
}
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) {
return dateFormat.format((Date) value);
}
}
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import net.sf.ezmorph.MorphException;
import net.sf.ezmorph.object.AbstractObjectMorpher;
/**
* 将json串中的日期字符串转换为bean中的Timestamp、Date
*
* @author weijie
*
*/
public class TimestampMorpher extends AbstractObjectMorpher{
/*** 日期字符串格式 */
private String[] formats;
public TimestampMorpher(String[] formats) {
this.formats = formats;
}
public Object morph(Object value) {
if (value == null) {
return null;
}
if (Timestamp.class.isAssignableFrom(value.getClass())) {
return (Timestamp) value;
}
if (!supports(value.getClass())) {
throw new MorphException(value.getClass() + " 是不支持的类型");
}
String strValue = (String) value;
SimpleDateFormat dateParser = null;
for (int i = 0; i < formats.length; i++) {
if (null == dateParser) {
dateParser = new SimpleDateFormat(formats[i]);
} else {
dateParser.applyPattern(formats[i]);
}
try {
return new Timestamp(dateParser.parse(strValue.toLowerCase()).getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
@Override
public Class morphsTo() {
return Timestamp.class;
}
public boolean supports(Class clazz) {
return String.class.isAssignableFrom(clazz);
}
}
import java.sql.Timestamp;
import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.util.JSONUtils;
public class Util {
public static Object jsonToBean(String json, Class cls) {
String[] formats = { "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd" };
JSONUtils.getMorpherRegistry().registerMorpher(new TimestampMorpher(formats));
JSONObject jsonObject = JSONObject.fromObject(json);
return JSONObject.toBean(jsonObject, cls);
}
public static String beanToJson(Object obj, String dateFormat) {
JsonConfig config = new JsonConfig();
config.registerJsonValueProcessor(Timestamp.class, new DateJsonValueProcessor(dateFormat));
JSONObject json = JSONObject.fromObject(obj, config);
return json.toString();
}
}
- 含有Timestamp、Date的bean和Json相互转换
- Java中String和Date、Timestamp之间的相互转换
- JSON和JAVA的bean的相互转换
- Java:Date、Calendar、Timestamp的区别、相互转换与使用
- java中String,Date,Timestamp之间的相互转换
- java.sql.Timestamp与java.util.Date的相互转换
- Java:Date、Calendar、Timestamp的区别、相互转换与使用
- Java:Date、Calendar、Timestamp的区别、相互转换与使用
- Java:Date、Calendar、Timestamp的区别、相互转换与使用
- String和Date、Timestamp之间的转换
- String和Date、Timestamp之间的转换
- String和Date,Timestamp之间的转换
- String和Date、Timestamp之间的转换
- String和Date、Timestamp之间的转换
- String和Date、Timestamp之间的转换
- String和Date、Timestamp之间的转换
- json 与 bean 之间的date转换
- json 与 bean 之间的date转换
- android-Notification点击跳转指定的Activity
- AJAX 快速入门 ——ajax的两种请求方式
- pip 指定目录
- React-Native的基本属性方法
- tomcat 创建虚拟目录(文件服务器)
- 含有Timestamp、Date的bean和Json相互转换
- Android框架学习之Retrofit(一)
- es 分布式搭建 参数说明
- 4个步骤做出更好的决定
- SDK build Tools revision is too low
- NC portal通过接口调用vo集(可以是aggvo)
- Oracle Client 与PLSQL Developer
- NO.4 linux系统分区及文件系统
- This和Super关键字