【发布时间】:2017-09-06 13:25:51
【问题描述】:
我有自定义Date 序列化程序来添加特定时区。
public class DateDeserializer extends StdDeserializer<Date> {
public DateDeserializer() {
this(null);
}
protected DateDeserializer(Class<?> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
Long dateString = jsonParser.getLongValue();
Date date = new Date(dateString);
changeTimeZone(date);
return date;
}
}
但有时日期不是long 值。有时它像String,例如"2017-01-01" 和方法jsonParser.getLongValue() 失败。
有什么方法可以知道jsonParser 持有什么样的价值?因为如果我检查jsonParser instanceof String 或long 它总是返回false。
【问题讨论】:
-
如果是Jackson,请添加标签
标签: java json date serialization jackson