我有自定義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