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格式的更多相关文章

  1. JAVA日期Date格式转corn表达式

    date转corn 定时任务获取corn /*** * 日期转corn表达式 * @param date 日期 * @return */ public static String getCron(Da ...

  2. JSONArray.fromObject Date显示问题

    原文链接:http://www.cnblogs.com/Nbge/archive/2012/07/31/2617127.html 使用JSONArray.fromObject,Date类型打出来的完全 ...

  3. 一起Polyfill系列:让Date识别ISO 8601日期时间格式

    一.什么是ISO 8601日期时间格式 ISO 8601是国际标准化组织制定的日期时间表示规范,全称是<数据存储和交换形式·信息交换·日期和时间的表示方法>. 示例: 1. 2014-12 ...

  4. Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式

    Eclipse 改动凝视的 date time 日期时间格式,即${date}变量格式 找到eclipse安装文件夹以下的plugins文件夹,搜索 org.eclipse.text ,找到一个jar ...

  5. Java日期的格式String类型GMT,GST换算成日期Date种类

    请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/articl ...

  6. 使用 JSON.parse 反序列化 ISO 格式的日期字符串, 将返回Date格式对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. java Date日期类和SimpleDateFormat日期类格式

    ~Date表示特定的时间,精确到毫秒~构造方法:public Date()//构造Date对象并初始化为当前系统的时间public Date(long date) //1970-1-1 0:0:0到指 ...

  8. js 将php生成的time()类型时间戳转化成具体date格式的日期

    需求:      将首页显示的int类型的时间转化为date类型的时间格式:      QuestionModel获取到question列表数据时,包括question['pub_time'],在显示 ...

  9. spring Date格式问题

    起因: 在数据库设计中,日期时间等类型字段一般设置为Datetime格式,所以有时在接口请求实体bean中,对应的接口字段的数据类型可能会被设置为Date类型. 而在java常用场景中的时间格式一般有 ...

随机推荐

  1. Java遇见HTML——JSP篇之JSP基础语法

    一.JSP简介 JSP全名为Java Server Pages,Java服务器端页面,其根本是一个简化的Servlet设计,它实现了在Java中使用HTML标签.Jsp是一种动态网页技术标准,是在服务 ...

  2. [Shapefile C Library]读取shp图形(.net Wapper)

    ShapeLib的.net Wapper版可以在官网下载到,在WorldWind中也有使用.ORG据说也是使用的ShapeLib实现的shp文件的读写. 官网:http://shapelib.mapt ...

  3. [转载]Oracle修改表空间大小

    Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...

  4. js DOM 元素ID就是全局变量

    有人在twitter上提到了:在Chrome的JavaScript终端中,你只需要输入一个元素的ID,就可以访问到这个元素.@johnjbarton给了解释,这是因为所有的元素ID都是全局变量.本文再 ...

  5. TCP/IP之TCP的建立与终止

    TCP协议简介 tcp/ip协议族中传输层最重要的两种协议是UDP和TCP协议,上一篇文章用很短的篇幅介绍完了UDP协议相关的内容,但相对于UDP而言的TCP协议,是种更复杂,应用更广的协议.在接下来 ...

  6. windows开发hadoop文件系统权限错误

    org.apache.hadoop.security.AccessControlException: Permission denied: user=Administrator, access=WRI ...

  7. javascript实例学习之一——联动下拉框

    经常碰到这样的需求,如省市_城市_乡镇下拉框.后一个下拉框的内容会根据前一个的改变而改变,之前的解决方法往往是在前一个改变的时候,向后台发送请求临时获取对应的内容.这样每触发一次就会网络请求一次,这种 ...

  8. docker summary

    http://blog.tankywoo.com/docker/2014/05/08/docker-4-summary.html 总结的很好 ----------------------------- ...

  9. HTML基础-- 标签、表格

    <html>    --开始标签 <head> 网页上的控制信息 <title>页面标题</title> </head> <body& ...

  10. Applescript 带参数调用某个App的方法

    do shell script "open '/Users/eran/Documents/Workground/DragonAdventure/FlashCode/tools/SWFInfo ...