Date类型数据转化json后,在jsp获取日期显示为[object Object]问题

本文介绍了如何在Java后端将Date类型数据正确转化为JSON格式的日期字符串,并提供了两种解决方案:一种是在后端使用自定义的日期格式转化类,另一种是在前端通过JavaScript函数进行格式转换。确保在不同环境和场景下日期数据能够被正确解析和展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后台从数据库里取的数据是Date日期类型的时候,如果把日期字段以json字符串形式返回前台界面,前台就会出现[object Object],而不是显示“2000-01-01”这种形式.

解决方法:

方法一:后台添加自定义的日期格式转化类

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class JsonDateValueProcessor implements JsonValueProcessor {

    private String format = "yyyy-MM-dd";

    public Object processArrayValue(Object value, JsonConfig config) {
        return process(value);
    }

    public Object processObjectValue(String key, Object value, JsonConfig config) {
        return process(value);
    }

    private Object process(Object value) {
        if (value instanceof Date) {
            SimpleDateFormat sdf = new SimpleDateFormat(format, Locale.UK);
            return sdf.format(value);
        }
        return value == null ? "" : value.toString();
    }

}

然后在list转化为json时,进行相应的处理:(这里是将classList转化为JSON串)

JsonConfig config = new JsonConfig();

config.setIgnoreDefaultExcludes(false);

config.registerJsonValueProcessor(java.util.Date.class,new JsonDateValueProcessor());

JSONArray jsonArray = JSONArray.fromObject(classList, config);

String classJson = jsonArray.toString();

方法二:在js中进行格式转换

//转化json格式的日期为yyyy-mm-dd hh:mm

function toDate(v,r,i) {
       var date = new Date();
       date.setTime(v.time);
       var y = date.getFullYear();
       var m = date.getMonth()+1;
       m = m<10?'0'+m:m;
       var d = date.getDate();
       d = d<10?("0"+d):d;
       var h = date.getHours();
       h = h<10?("0"+h):h;
       var M = date.getMinutes();
       M = M<10?("0"+M):M;
       var str = y+"-"+m+"-"+d+" "+h+":"+M;
       return str;

  }

这样在jsp页面中获取json对象的日期时间,就可以得到“2000-01-01”这种形式了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值