我有自定义Date
序列化器来添加一定的时区。JAVA StdDateSerializer解析日期
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
。
如果这是杰克逊,请将其添加为标记,请 – DPM