前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >java后台后台解决 json-lib封装的时间

java后台后台解决 json-lib封装的时间

作者头像
故久
发布2019-09-29 14:32:53
7260
发布2019-09-29 14:32:53
举报
文章被收录于专栏:故久故久

1. Json-lib可以将Java对象很方便的转成json格式的字符串

但是java里面时间类型转换成json数据就成这样啦 "createTime":{"date":30,"day":3,"hours":15,"minutes":14,"month":3,"nanos":0,"seconds" :38,"time":1209539678000,"timezoneOffset":-480,"year":108}

2.解决方式如下

List<Dept> deptList = deptService.selectBypage(map);
int count = deptService.selectDept();
JSONArray ja = new JSONArray();
JsonConfig jf = new JsonConfig();
这种是时间戳Timestamp
jf.registerJsonValueProcessor(java.sql.Timestamp.class, new DateJsonValueProcessor("yyyy-MM-dd"));
还有一种是Date
jf.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd"));  
JSONObject jsonObject = new JSONObject();
jsonObject.put("count", count);
jsonObject.put("code", 0);
jsonObject.put("msg", "null");
jsonObject.put("data", ja.fromObject(deptList, jf));
注意:以上这种返回格式是使用layui所返回的json参数类型
DateJsonValueProcessor是实现了一个JsonValueProcessor接口
新建DateJsonValueProcessor实现json-lib中的sonValueProcessor接口
package com.siyuan.service.Impl;
import java.text.SimpleDateFormat;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;  
public class DateJsonValueProcessor implements JsonValueProcessor {
private String format;  
    public DateJsonValueProcessor(String format){  
        this.format = format;  
    }  
    public Object processArrayValue(Object value, JsonConfig jsonConfig)  
    {  
        return null;  
    }  
    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig)  
    {  
        if(value == null)  
        {  
            return "";  
        }  
        if(value instanceof java.sql.Timestamp)  
        {  
            String str = new SimpleDateFormat(format).format((java.sql.Timestamp)value);  
            return str;  
        }  
        if (value instanceof java.util.Date)  
        {  
            String str = new SimpleDateFormat(format).format((java.util.Date) value);  
            return str;  
        }  
        return value.toString();  
    }  
}

以上代码是时间类型被处理格式化

这样就解决了以上问题,运行结果为

{"count":11,"code":0,"msg":null,"data":[{"deleteflg":0,"deptid":1,"deptname":"人事部","inserttime":"2018-02-02","updatetime":"2018-02-02"},{"deleteflg":0,"deptid":2,"deptname":"采购部","inserttime":"2018-02-02","updatetime":"2018-02-02"},{"deleteflg":0,"deptid":3,"deptname":"技术部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":4,"deptname":"调研部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":5,"deptname":"运维部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":6,"deptname":"总裁部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":7,"deptname":"秘书部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":8,"deptname":"经理部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":9,"deptname":"财务部","inserttime":"2018-02-03","updatetime":"2018-02-03"},{"deleteflg":0,"deptid":10,"deptname":"科研部","inserttime":"2018-02-03","updatetime":"2018-02-03"}]}

希望能够帮助到大家

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档