Имя класса перечисления используется вместо значенияJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Имя класса перечисления используется вместо значения

Сообщение Anonymous »

Новичок пытается использовать сериализацию json с помощью картографов для класса, содержащего перечисление. Я обнаружил, что имя класса используется в отправленном запросе вместо значения перечисления. Не уверен, что я здесь пропустил.
Поле имеет @JsonValue, а также я попробовал mapper.enable( SerializationFeature.WRITE_ENUMS_USING_TO_STRING)
Любые указатели будут очень полезны.
Спасибо
Код фрагменты:

Код: Выделить всё

Mapper calling code :

CDRequest CDRequest = new CDRequest();
CDIdentifier CDIdentifier = new CDIdentifier();
CDIdentifier.setInputType(InputTypeEnum.LEGACY);
CDRequest.setInputIdentifier(CDIdentifier);
String c = mapper.writeValueAsString(CDRequest);

Target Generated code:

public class CDRequest {
public static final String JSON_PROPERTY_INPUT_IDENTIFIER = "inputIdentifier";
private CDIdentifier inputIdentifier;
public CDRequest inputIdentifier(CDIdentifier inputIdentifier) {

this.inputIdentifier = inputIdentifier;
return this;
}

@jakarta.annotation.Nullable
@JsonProperty(JSON_PROPERTY_INPUT_IDENTIFIER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)

public CDIdentifier getInputIdentifier() {
return inputIdentifier;
}

@JsonProperty(JSON_PROPERTY_INPUT_IDENTIFIER)
@JsonInclude(value = JsonInclude.Include.USE_DEFAULTS)
public void setInputIdentifier(CDIdentifier inputIdentifier) {
this.inputIdentifier = inputIdentifier;
}

@JsonIgnoreProperties(
value = "inputType", // ignore manually set inputType, it will be automatically generated by Jackson during serialization
allowSetters = true // allows the inputType to be set during deserialization
)
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "inputType", visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = CR.class, name = "CUSTOMER_ID"),
@JsonSubTypes.Type(value = CN.class, name = "CUSTOMER_NUMBER"),
@JsonSubTypes.Type(value = LCR.class, name = "LEGACY"),
@JsonSubTypes.Type(value = CR.class, name = "CR"),
@JsonSubTypes.Type(value = CN.class, name = "CN"),
@JsonSubTypes.Type(value = LCR.class, name = "LCR"),
})

}

Identifier :

public class CDIdentifier {
/**
* Gets or Sets inputType
*/
public enum InputTypeEnum {
LEGACY("LEGACY");

private String value;

InputTypeEnum(String value) {
this.value = value;
}

@JsonValue
public String getValue() {
return value;
}

@Override
public String toString() {
return String.valueOf(value);
}

@JsonCreator
public static InputTypeEnum fromValue(String value) {
for (InputTypeEnum b : InputTypeEnum.values()) {
if (b.value.equals(value)) {
return b;
}
}
throw new IllegalArgumentException("Unexpected value '" + value + "'");
}
}

public static final String JSON_PROPERTY_INPUT_TYPE = "inputType";
protected InputTypeEnum inputType;

Вместо значения «Legacy» картограф возвращает само имя класса «CDIdentifier».
значение перечисления возвращается из Mapper.writeAsStirng
значение перечисления возвращается из Mapper.writeAsStirng
п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... d-of-value
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Имя класса перечисления используется вместо значения
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Имя класса перечисления используется вместо значения
    Anonymous » » в форуме JAVA
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Имя класса перечисления используется вместо значения
    Anonymous » » в форуме JAVA
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Имя класса перечисления используется вместо значения
    Anonymous » » в форуме JAVA
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Имя класса перечисления используется вместо значения
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»