java background background to solve the time of json-lib encapsulation

1. Json-lib can easily convert Java objects into json formatted strings

But the time type in java is converted into json data like this
"createTime":{"date":30,"day":3,"hours":15,"minutes":14,"month":3,"nanos ":0,"seconds"
:38,"time":1209539678000,"timezoneOffset":-480,"year":108}

2. The solution is as follows

List<Dept> deptList = deptService.selectBypage(map);

int count = deptService.selectDept();

JSONArray ja = new JSONArray();

JsonConfig jf = new JsonConfig();

This is the timestamp Timestamp

jf.registerJsonValueProcessor(java.sql.Timestamp.class, new DateJsonValueProcessor("yyyy-MM-dd"));

Another is 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));

Note: The above return format is the json parameter type returned by layui

DateJsonValueProcessor implements a JsonValueProcessor interface

Create a new DateJsonValueProcessor to implement the sonValueProcessor interface in json-lib

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();  

    }  

}

The above code is the time type being processed and formatted

This solves the above problem, and the running result is

{"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"}]}

Hope it can help everyone

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325455038&siteId=291194637