From 6d3a31d96ba63556ad1139497d5d9b14bf51f5a7 Mon Sep 17 00:00:00 2001 From: JaisonJohn Date: Wed, 27 Feb 2019 10:22:29 -0600 Subject: [PATCH] output LocalTime json schema format as Time --- .../jsr310/ser/LocalTimeSerializer.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/datetime/src/main/java/com/fasterxml/jackson/datatype/jsr310/ser/LocalTimeSerializer.java b/datetime/src/main/java/com/fasterxml/jackson/datatype/jsr310/ser/LocalTimeSerializer.java index 4b0f6f40..7bf17248 100644 --- a/datetime/src/main/java/com/fasterxml/jackson/datatype/jsr310/ser/LocalTimeSerializer.java +++ b/datetime/src/main/java/com/fasterxml/jackson/datatype/jsr310/ser/LocalTimeSerializer.java @@ -25,7 +25,12 @@ import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonToken; import com.fasterxml.jackson.core.type.WritableTypeId; +import com.fasterxml.jackson.databind.JavaType; +import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonFormatVisitorWrapper; +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonStringFormatVisitor; +import com.fasterxml.jackson.databind.jsonFormatVisitors.JsonValueFormat; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; /** @@ -130,4 +135,19 @@ protected JSR310FormattedSerializerBase withFeatures(Boolean writeZoneId, Boo return new LocalTimeSerializer(this, _formatter, _useTimestamp, useNanoseconds); } + + @Override + public void acceptJsonFormatVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException + { + SerializerProvider provider = visitor.getProvider(); + boolean useTimestamp = (provider != null) && useTimestamp(provider); + if (useTimestamp) { + _acceptTimestampVisitor(visitor, typeHint); + } else { + JsonStringFormatVisitor v2 = visitor.expectStringFormat(typeHint); + if (v2 != null) { + v2.format(JsonValueFormat.TIME); + } + } + } }