java 对象转json 对象中包含list且日期格式为date

        
            net.sf.json-lib
            json-lib
            2.4
            jdk15
        

直接转json 会把时间格式的转成timestamp ,为了消除timestamp 变为date格式

/**
 * JSON日期格式转换
 *
 */
public class DateJsonValueProcessor implements JsonValueProcessor  {
    private String format = "yyyy-MM-dd HH:mm:ss";

    public DateJsonValueProcessor() {

    }

    public DateJsonValueProcessor(String format) {

        this.format = format;
    }

    public Object processArrayValue(Object value, JsonConfig jsonConfig) {

        String[] obj = {};
        if (value instanceof Date[]) {
            SimpleDateFormat sf = new SimpleDateFormat(format);
            Date[] dates = (Date[]) value;
            obj = new String[dates.length];
            for (int i = 0; i < dates.length; i++) {
                obj[i] = sf.format(dates[i]);
            }
        }
        return obj;
    }

    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {

        if (value instanceof Date) {
            String str = new SimpleDateFormat(format).format((Date) value);
            return str;
        }
        return value;
    }

    public String getFormat() {

        return format;
    }

    public void setFormat(String format) {
        this.format = format;
    }

}

 使用样例:

 

 OpportunitiesReqDataVo reqDataVo = new OpportunitiesReqDataVo();//某实体类里面包含List list list里面很对属性包含Date格式

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor());
net.sf.json.JSONArray contentJson = net.sf.json.JSONArray.fromObject(reqDataVo, jsonConfig);

 

你可能感兴趣的:(java,杂记)