JSONArray.fromObject()注入处理日期Date格式
package jsonDateProcess;
import java.sql.Date;
import java.text.SimpleDateFormat;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
/**
*
* @description: 用于JSONArray.fromObject()的注入处理日期Date类 (1)对于以Date时间属性为null值时,
* ,则返回空字符串,因为其转换过程中会出现问题,虽然没有发生异常,但是Ajax请求会报404 Not Found的错误
* (2)转换日期的格式
* @fileName:JsonDateValueProcessor.java
* @createTime:2015年12月8日 上午11:33:39
* @author:liwenjian
* @version 1.0.0
*
*/
public class JsonDateValueProcessor implements JsonValueProcessor {
@Override
public Object processArrayValue(Object obj, JsonConfig jsonconfig) {
return process(obj);
}
@Override
public Object processObjectValue(String s, Object obj, JsonConfig jsonconfig) {
return process(obj);
}
private Object process(Object obj) {
if (obj == null) {// 如果时间为null,则返回空字串
return "";
}
if (obj instanceof Date) {
obj = new java.util.Date(((Date) obj).getTime());
}
if (obj instanceof java.util.Date) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd",
Locale.CHINA);// 格式化时间为yyyy-MM-dd类型
return sdf.format(obj);
} else {
return new Object();
}
}
}
package jsonDateProcess;
import java.util.Date;
/**
*
* @description: 用户表
* @fileName:User.java
* @createTime:2015年12月8日 下午2:55:46
* @author:liwenjian
* @version 1.0.0
*
*/
public class User {
private String name;
private Date createDate;
private Date updateDate;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
}
package jsonDateProcess;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import net.sf.json.JSONArray;
import net.sf.json.JsonConfig;
/**
*
* @description: 测试类
* @fileName:JsonDateFormat.java
* @createTime:2015年12月8日 下午3:03:00
* @author:liwenjian
* @version 1.0.0
*
*/
public class JsonDateFormat {
public static void main(String[] args) {
List<User> list = new ArrayList<User>();
User user = new User();
user.setName("张三");
user.setCreateDate(new Date());
user.setUpdateDate(new Date());
list.add(user);
user = new User();
user.setName("李四");
user.setCreateDate(new Date());
user.setUpdateDate(null);
list.add(user);
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(Date.class,
new JsonDateValueProcessor());// 注入处理Date类
JSONArray jsonArray = JSONArray.fromObject(list, jsonConfig);
System.out.println(jsonArray.toString());
}
}
输出结果:[{"createDate":"2015-12-08","name":"张三","updateDate":"2015-12-08"},{"createDate":"2015-12-08","name":"李四","updateDate":""}]
涉及到的jar包如下:

JSONArray.fromObject()注入处理日期Date格式的更多相关文章
- JAVA日期Date格式转corn表达式
date转corn 定时任务获取corn /*** * 日期转corn表达式 * @param date 日期 * @return */ public static String getCron(Da ...
- JSONArray.fromObject Date显示问题
原文链接:http://www.cnblogs.com/Nbge/archive/2012/07/31/2617127.html 使用JSONArray.fromObject,Date类型打出来的完全 ...
- 一起Polyfill系列:让Date识别ISO 8601日期时间格式
一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...
- Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式
Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式 找到eclipse安装文件夹以下的plugins文件夹,搜索 org.eclipse.text ,找到一个jar ...
- Java日期的格式String类型GMT,GST换算成日期Date种类
请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/articl ...
- 使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- java Date日期类和SimpleDateFormat日期类格式
~Date表示特定的时间,精确到毫秒~构造方法:public Date()//构造Date对象并初始化为当前系统的时间public Date(long date) //1970-1-1 0:0:0到指 ...
- js 将php生成的time()类型时间戳转化成具体date格式的日期
需求: 将首页显示的int类型的时间转化为date类型的时间格式: QuestionModel获取到question列表数据时,包括question['pub_time'],在显示 ...
- spring Date格式问题
起因: 在数据库设计中,日期时间等类型字段一般设置为Datetime格式,所以有时在接口请求实体bean中,对应的接口字段的数据类型可能会被设置为Date类型. 而在java常用场景中的时间格式一般有 ...
随机推荐
- 利用css做扇形
html和css每一块的边边角角都是直来直去,除了border-raius,要怎么做扇形了?当然,你如果只想要得到直角扇形,和半圆,那就很简单?那么做小于180的直角扇形,如何做了(大于180的直角无 ...
- 让SpringMVC支持可版本管理的Restful接口
需求 移动互联网时代的到来,软件开发的模式也在变化.记得以前做B/S的后台开发,基本上没有Http接口一说,全部是通过渲染模板技术(jsp,freemark)把最终html展示给最终用户.现在完全变了 ...
- spring消费RESTfull服务
使用RestTemplate做这件事非常简单 package hello; import org.slf4j.Logger; import org.slf4j.LoggerFactory; impor ...
- django url 软编码
期初用django 开发应用的时候,完全是在urls.py 中硬编码配置地址,在views.py中HttpResponseRedirect()也是硬编码转向地址,当然在template 中也是一样了, ...
- git打tag 三步骤
git status git tag publish/1.0.0 git push origin publish/1.0.0
- java io读书笔记(7) Closing Output Streams
输出完毕后,需要close这个stream,从而使操作系统释放相关的资源.举例: public void close( ) throws IOException 并不是所有的stream都需要clos ...
- java io读书笔记(5) Writing Bytes to Output Streams
outputstream类是所有的字符输出类的父类,他是一个抽象类. 对于OutputStream类来说,其最基础的方法就是:write(). public abstract void write(i ...
- PostgreSQL Errors and Messages
使用RAISE语句来报告消息并抛出错误 RAISE [ level ] ’format’ [, expression [, ... ]] [ USING option = expression [, ...
- iis access denied, you do not have permission.
this kind of problems are usually caused by some IIS configuration issues, like application pool set ...
- [转]JqueryEasyUI教程入门篇
什么是jQueryEasyUI? JqueryUI是一组基于jQuery的UI插件集合 学习jQueryEasyUI的条件? 必须掌握Jquery的基本语法知识 jQueryEasyUI的特点? 1. ...