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包如下:

  • 相关阅读:
    《Programming WPF》翻译 第8章 1.动画基础
    一些被遗忘的设计模式
    《Programming WPF》翻译 第4章 数据绑定
    《Programming WPF》翻译 第3章 控件
    《Programming WPF》翻译 第5章 样式和控件模板
    《Programming WPF》翻译 第7章 绘图
    《Programming WPF》翻译 第9章 自定义控件
    《Programming WPF》翻译 第7章 绘图 (2)
    《Programming WPF》翻译 第8章 前言
    关于Debug和Release之本质区别
  • 原文地址:https://www.cnblogs.com/lyxy/p/5087091.html
Copyright © 2011-2022 走看看