• JSONObject转换JSON之将Date转换为指定格式(转)


    项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式:

    Html代码  收藏代码
     
    {"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22}  

     而这种格式肯定是非常难以理解的,为了将Date转换为我们认识的“yyyy-MM-dd”格式,需要做以下操作。

     首先创建一个时间转换器

    public class JsonDateValueProcessor implements JsonValueProcessor {
        private String format ="yyyy-MM-dd";
        
        public JsonDateValueProcessor() {
            super();
        }
        
        public JsonDateValueProcessor(String format) {
            super();
            this.format = format;
        }
    
        @Override
        public Object processArrayValue(Object paramObject,
                JsonConfig paramJsonConfig) {
            return process(paramObject);
        }
    
        @Override
        public Object processObjectValue(String paramString, Object paramObject,
                JsonConfig paramJsonConfig) {
            return process(paramObject);
        }
        
        
        private Object process(Object value){
            if(value instanceof Date){  
                SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);  
                return sdf.format(value);
            }  
            return value == null ? "" : value.toString();  
        }
    
    }

    然后在调用JSONObject之前创建一个JsonConfig,并且将上一步定义的date转换器注册进去:

    Java代码  收藏代码
    JsonConfig jsonConfig = new JsonConfig();
    jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());

    最后将JsonConfig放入JSONObject对象中,这里针对不同的数据类型有多种方式放入JsonConfig:

    Java代码  收藏代码
    JSONObject json = new JSONObject();
    //Map转JSON
    json.putAll(Map, jsonConfig);

     或者

    Java代码  收藏代码
    JSONObject json = new JSONObject();
    //JavaBean转JSON
    json.fromObject(object, jsonConfig)

    最后我们看到的结果就是只要JavaBean中有Date对象,转换成JSON字符串时就会变成“yyyy-MM-dd”格式。

  • 相关阅读:
    ActiveX在.NET 2005中的实现(三)
    SharePoint学习研究资源
    配置Excel Service的Excel Web Access 功能及应用
    SkyDrive 与 Hotmail 的 Office Web Apps
    ActiveX在.NET 2005中的实现(二)
    Sharepoint设置SMTP邮件发送服务器(使用中继服务器)
    SharePoint2010新功能
    Analysis自动处理
    NBear V3
    Server数据推送,长连接
  • 原文地址:https://www.cnblogs.com/LiuChunfu/p/4917934.html
Copyright © 2020-2023  润新知