zoukankan      html  css  js  c++  java
  • 带日期的bean转为json(bean->JSON)

    原文链接:http://blog.sina.com.cn/s/blog_5f1fe33f0100jibg.html

    示例代码:


    JsonBean bean = new JsonBean();
    bean.setName("NewBaby");
    bean.setAge(1);
    bean.setBorn(new Date());
    jo = JSONObject.fromObject(bean);
    System.out.println("bean->json:" + jo.toString());


    打印结果:bean->json:{"age":1,"born":{"date":10,"day":3,"hours":14,"minutes":14,"month":2,"seconds":1,"time":1268201641228,"timezoneOffset":-480,"year":110},"name":"NewBaby"}  

    这时你会发现它把bean对象里的util.Date这个类型的所有属性一一转换出来。在实际运用过程中,大多数情况下我们希望能转化为yyyy-MM-dd这种格式,下面就讲一讲如何实现。

    首先要写一个新的类JsonDateValueProcessor如下:


    public class JsonDateValueProcessor implements JsonValueProcessor {
      
        private String datePattern = "yyyy-MM-dd";
      
        public JsonDateValueProcessor() {
            super();
        }
      
        public JsonDateValueProcessor(String format) {
            super();
            this.datePattern = format;
        }
      
        public Object processArrayValue(Object value, JsonConfig jsonConfig) {
            return process(value);
        }
      
        public Object processObjectValue(String key, Object value,
                JsonConfig jsonConfig) {
            return process(value);
        }
      
        private Object process(Object value) {
            try {
                if (value instanceof Date) {
                    SimpleDateFormat sdf = new SimpleDateFormat(datePattern,
                            Locale.UK);
                    return sdf.format((Date) value);
                }
                return value == null ? "" : value.toString();
            } catch (Exception e) {
                return "";
            }
        }
      
        public String getDatePattern() {
            return datePattern;
        }
      
        public void setDatePattern(String pDatePattern) {
            datePattern = pDatePattern;
        }
    }
     
    测试代码:

    JsonBean bean = new JsonBean();
    bean.setName("NewBaby");
    bean.setAge(1);
    bean.setBorn(new Date());

    JsonConfig jsonConfig = new JsonConfig();
    jsonConfig.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());

    JSONObject jo = JSONObject.fromObject(bean, jsonConfig);
    System.out.println("bean->json:" + jo.toString());

    打印结果:bean->json:{"age":1,"born":"2010-03-10","name":"NewBaby"}
    这就能得到我们想要的结果了。
  • 相关阅读:
    数据库产生的背景
    VS2008执行MFC程序,提示microsoft incremental linker已停止工作解决方法
    leetcode第一刷_Add Binary
    【MongoDB】深入了解MongoDB不可不知的十点
    哈理工2015暑假训练赛 zoj 2078Phone Cell
    dpdk l2fwd 应用流程分析
    在Redhat Linux中执行非Redhat的Openstack, Redhat将对其Linux不提供支持
    Wing IDE 怎样设置 python版本号
    Shell编程入门
    通达OA 小飞鱼OA实施法:以项目管理的方式来推进工作流设计项目实施
  • 原文地址:https://www.cnblogs.com/bobshieh/p/5131475.html
Copyright © 2011-2022 走看看