Files
spring-boot-rest/jackson/src/test/java/com/baeldung/jackson/objectmapper/CustomCarDeserializer.java
2016-07-26 20:38:59 +02:00

45 lines
1.3 KiB
Java

package com.baeldung.jackson.objectmapper;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baeldung.jackson.objectmapper.dto.Car;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.ObjectCodec;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
public class CustomCarDeserializer extends StdDeserializer<Car> {
private static final long serialVersionUID = -5918629454846356161L;
private final Logger Logger = LoggerFactory.getLogger(getClass());
public CustomCarDeserializer() {
this(null);
}
public CustomCarDeserializer(final Class<?> vc) {
super(vc);
}
@Override
public Car deserialize(final JsonParser parser, final DeserializationContext deserializer) throws IOException {
final Car car = new Car();
final ObjectCodec codec = parser.getCodec();
final JsonNode node = codec.readTree(parser);
try {
final JsonNode colorNode = node.get("color");
final String color = colorNode.asText();
car.setColor(color);
} catch (final Exception e) {
Logger.debug("101_parse_exeption: unknown json.");
}
return car;
}
}