zoukankan      html  css  js  c++  java
  • 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包如下:

  • 相关阅读:
    Procedure execution failed 2013
    struts2总结四:Action与Form表单的交互
    JQuery中的DOM操作
    easyui提交表单数据的时候如何防止二次提交
    一句话
    字符串截取函数substr和substring的不同及其相关说明
    四句话
    JAVA定时执行任务,每天定时几点钟执行任务
    JAVA定时执行任务的三种方法
    struts2总结三:struts2配置文件struts.xml的简单总结
  • 原文地址:https://www.cnblogs.com/lyxy/p/5087091.html
Copyright © 2011-2022 走看看