enumeraciones tienen numéricos ordinales, a partir de cero, y se asignan a cada valor de una enumeración . en el orden en el que fueron declaradas Por ejemplo, en el código Active
ha ordinal 0
y Inactive
tiene ordinal 1
puede ir y venir entre el valor de una enumeración y su ordinal, como esto:.
// ordinal=0, since Active was declared first in the enum
int ordinal = Status.Active.ordinal();
// enumVal=Active, since 0 is the ordinal corresponding to Active
Status enumVal = Status.values()[0];
Claramente el ordinal 1
corresponde a Inactive
(no es un problema de Jackson), como se explicó anteriormente, los ordinales en una enumeración son de base cero. Tal vez deberías corregir tu código para reflejar eso y asegurarte de que {status:0}
significa Status.Active
.
La pregunta no tiene nada que ver con la serialización –
Como dice Oscar, la enumeración (y la informática en general) está basado en 0. Reste 1 del número si es algo que está recibiendo de otra capa. – rynmrtn