Allow Instant to be serialized as epochSecond without the fraction part
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece com InstantSerializerBase.serialize(T value, JsonGenerator generator, SerializerProvider provider) e com o tratamento de timestamps e nanossegundos mostrado. Rastreie como @JsonFormat(shape = JsonFormat.Shape.NUMBER) e os recursos do mapper selecionam esse caminho e, em seguida, determine a configuração padrão pretendida para omitir a parte fracionária. Considera-se concluído quando um timestamp de época de Instant é serializado como um número inteiro de segundos desde a época sem exigir um getter personalizado.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
I have an Instant field that represents an epoch timestamp in seconds.
@JsonProperty("registered_at")
@JsonFormat(shape = JsonFormat.Shape.NUMBER)
private Instant registeredAt;
the mapper is configured this way
.featuresToDisable(ADJUST_DATES_TO_CONTEXT_TIME_ZONE,
FAIL_ON_UNKNOWN_PROPERTIES,
WRITE_DATES_AS_TIMESTAMPS,
SORT_PROPERTIES_ALPHABETICALLY)
However when this gets serialized as
"registered_at" : 1420324047.000000000
By looking at the code there's no way to serialize this value as epoch seconds using the standard mechanism.
InstantSerializerBase.serialize(T value, JsonGenerator generator, SerializerProvider provider)
if (useTimestamp(provider)) {
if (useNanoseconds(provider)) {
generator.writeNumber(DecimalUtils.toBigDecimal(
getEpochSeconds.applyAsLong(value), getNanoseconds.applyAsInt(value)
));
return;
}
generator.writeNumber(getEpochMillis.applyAsLong(value));
return;
}
The only option is to use :
@JsonGetter("registered_at")
public long getRegisteredAtEpoch() {
return registeredAt.getEpochSecond();
}
It could be nice if there could be way to tell jackson to avoid serializing the fraction part.
- Linguagem predominante
- Java
- Estrelas
- 425
- Forks
- 125
- Merge médio
- 19min
- PRs com merge (30d)
- 1
Preparar o ambiente
Ainda não verificamos os arquivos de configuração deste projeto. Comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de FasterXML/jackson-modules-java8
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
-
Wrap `DateTimeException`Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 25/100
FasterXML/jackson-modules-java8#382 · 3 comentários ·
-
date-time-config
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
FasterXML/jackson-modules-java8#374 · 31 comentários · 1 reação ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
FasterXML/jackson-modules-java8#310 · 1 comentário ·
-
Instants get not deserialized as expected sometimes (millis vs nanos, non-fractional numbers)Abertatest-needed
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
FasterXML/jackson-modules-java8#304 · 3 comentários ·
Todas as issues de FasterXML/jackson-modules-java8
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
refinedmods/refinedstorage2#1414 · 1 comentário ·
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
In Java's `LongBoundedSum`, setting `lower` to `Long.MIN_VALUE` under-estimates the sensitivityAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 73/100
google/differential-privacy#489 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
link-check link-check:manual
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100