@Override // since 2.9 protected JsonToken serializationShape(SerializerProvider provider) { if (!useTimestamp(provider) && shouldWriteWithZoneId(provider)) { return JsonToken.VALUE_STRING; } return super.serializationShape(provider); } }
@Override public void serialize(ZonedDateTime value, JsonGenerator g, SerializerProvider provider) throws IOException { if (!useTimestamp(provider)) { if (shouldWriteWithZoneId(provider)) { // write with zone g.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value)); return; } } super.serialize(value, g, provider); }
@Override // since 2.9 protected JsonToken serializationShape(SerializerProvider provider) { if (useTimestamp(provider)) { if (useNanoseconds(provider)) { return JsonToken.VALUE_NUMBER_FLOAT; } return JsonToken.VALUE_NUMBER_INT; } return JsonToken.VALUE_STRING; } }
@Override protected void _acceptTimestampVisitor(JsonFormatVisitorWrapper visitor, JavaType typeHint) throws JsonMappingException { SerializerProvider prov = visitor.getProvider(); if ((prov != null) && useNanoseconds(prov)) { JsonNumberFormatVisitor v2 = visitor.expectNumberFormat(typeHint); if (v2 != null) { v2.numberType(NumberType.BIG_DECIMAL); } } else { JsonIntegerFormatVisitor v2 = visitor.expectIntegerFormat(typeHint); if (v2 != null) { v2.numberType(NumberType.LONG); } } }
@Override public void serialize(T value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { if (provider.isEnabled(SerializationFeature.WRITE_DATE_TIMESTAMPS_AS_NANOSECONDS)) { generator.writeNumber(DecimalUtils.toBigDecimal( getEpochSeconds.applyAsLong(value), getNanoseconds.applyAsInt(value) )); return; } generator.writeNumber(getEpochMillis.applyAsLong(value)); return; } String str; if (_formatter != null) { str = _formatter.format(value);; } else if (defaultFormat != null) { str = defaultFormat.format(value);; } else { str = value.toString(); } generator.writeString(str); }
@Override public void serialize(T value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (useTimestamp(provider)) { if (useNanoseconds(provider)) { generator.writeNumber(DecimalUtils.toBigDecimal( getEpochSeconds.applyAsLong(value), getNanoseconds.applyAsInt(value) )); return; } generator.writeNumber(getEpochMillis.applyAsLong(value)); return; } String str; if (_formatter != null) { str = _formatter.format(value);; } else if (defaultFormat != null) { str = defaultFormat.format(value);; } else { str = value.toString(); } generator.writeString(str); }
@Override public void serialize(ZonedDateTime value, JsonGenerator generator, SerializerProvider provider) throws IOException { if (!useTimestamp(provider)) { if (shouldWriteWithZoneId(provider)) { // write with zone generator.writeString(DateTimeFormatter.ISO_ZONED_DATE_TIME.format(value)); return; } } super.serialize(value, generator, provider); }