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

    示例代码:


    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"}
    这就能得到我们想要的结果了。
  • 相关阅读:
    复习题之后缀表达式
    专项训练之枚举
    专项训练之二分
    深夜毒物
    笑面的学校日常(14)最近一次更新2017 04 06
    了不起的竞赛生(7)(最近一次更新2017 04 06)
    水题日常——动态规划 洛谷
    Bzoj 1926: [Sdoi2010]粟粟的书架(二分答案+乱搞+主席树)
    Cogs 1708. 斐波那契平方和(矩阵乘法)
    Codevs 1482 路线统计(矩阵乘法)
  • 原文地址:https://www.cnblogs.com/yhtboke/p/6165169.html
Copyright © 2011-2022 走看看