com.pugwoo.dbhelper.json.MultiDateDeserializer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nimble-orm Show documentation
Show all versions of nimble-orm Show documentation
nimble-orm an ORM based on Spring jdbcTemplate.
package com.pugwoo.dbhelper.json;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
import java.io.IOException;
import java.text.ParseException;
import java.util.Date;
public class MultiDateDeserializer extends StdDeserializer {
private static final long serialVersionUID = 1L;
public MultiDateDeserializer() {
this(null);
}
public MultiDateDeserializer(Class> vc) {
super(vc);
}
@Override
public Date deserialize(JsonParser jp, DeserializationContext context) throws IOException {
JsonNode node = jp.getCodec().readTree(jp);
String date = node.asText();
try {
return NimbleOrmDateUtils.parseThrowException(date);
} catch (ParseException e) {
throw new JsonParseException(jp,
"cannot parse date: \"" + date + "\". Supported formats: "
+ NimbleOrmDateUtils.DATE_FORMAT_REGEXPS.values());
}
}
}