Json数据传入的时间是String类型,toBean时实体类对象的时间属性是(系统时间)Date的问题解决

在测试接口时,使用的测试的Json数据传的时间在ToBean时,得到的实体类对象的属性为日期是系统时间,

 

开始猜想是因为传入的是Json的数据是字符串类型,在传入时实体类的时间属性是日期类型(是UTIL包里的,不是SQL包)所以不能赋值传入的数据所以使用了系统时间,按照网上找的方法

让的Json数据去识别传入的时间数据,发现不行,仍然传入的是系统时间,,,其中过程不大了​​解(小白啊,,越学习发现自己知道的越来越少)

最后的解决方法是在传入数据后将时间值单独取出再转换成日期类型,设置给实体类对象

这样可以使实体类对象得到传入的时间数据,需求解决,,,,做个记录

但是传入的时间数据仍是不能直接toBean的,,这个问题有待学习吧(不晓得什么时候....)

 

 

 

补充:

!!!刚刚做完上面功能,又遇到一个问题,就是在返回一个Json数据时遇到其中的date属性的是

"gffpsj":{"date":13,"day":1,"hours":0,"minutes":0,"month":0,"seconds":0,"time":1042387200000,"timezoneOffset":-480,"year":103}

这样的类型,在后台传给前端时,需要转换成yyyy-MM-dd类型的解决方法,感谢网友,参考文章地址:https://blog.csdn.net/chenleixing/article/details/44227497

首先准备工具类:

public class JsonDateValueProcessor implements JsonValueProcessor {

private String format = "yyyy-MM-dd";
 
	
	public JsonDateValueProcessor() {
		super();
	}
 
	public JsonDateValueProcessor(String format) {
		super();
		this.format = format;
	}
 
	@Override
	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;
	}
 
	@Override
	public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
		if (value instanceof java.util.Date) {
			String str = new SimpleDateFormat(format).format((Date) value);
			return str;
		}
		return value.toString();
	}
 
	public String getFormat() {
		return format;
	}
 
	public void setFormat(String format) {
		this.format = format;
	}
 
}

 

测试类就不准备了,具体实现如下:

JsonConfig jsonConfig=new JsonConfig();
				jsonConfig.registerJsonValueProcessor(java.util.Date.class, new JsonDateValueProcessor());
				result = JSONObject.fromObject(zjf,jsonConfig).toString();

 

打印出来的result其中的Date类型就是yyyy-MM-dd类型了,

千万千万注意!!!java.util.Date.class一定不要写出Date.class   一定要写全了,可能是不同的Date类不同??待解惑...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值