Как избежать конфликтующих определений получателя для свойства с тем же именем атрибута с другим типом данных - PullRequest
0 голосов
/ 05 марта 2020

Есть ли способ избежать конфликтующих определений геттера для свойства "memory", когда оно генерируется во время выполнения, когда мы не можем изменить структуру,

{
"memory": "not_available"
}

{
"memory": {
    "data1": 0,
    "data2": 2,
}
}

У меня есть 1 свойство с другим типом данных и как обрабатывать сценарии, в которых я использую быстрее xml api

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
    "memory"
})

public class MyMemoryData{
     @JsonProperty("memory")
     private Memory memory;

     @JsonProperty("memory")      
     private String memoryValue;
     }

Получение приведенного ниже исключения. Конфликтующие определения получателя для свойства "memory":

1 Ответ

1 голос
/ 05 марта 2020

Вы уверены, что вам действительно нужно два разных поля для поля "память"? Я имею в виду, вы можете использовать только частную память; и установить значение null, если оно «not_available»?

Если да («not_available» == null), вы можете написать свой собственный десериализатор Джексона для поля памяти, который будет реализовывать logi c: если значение is "not_available", возвращает ноль, иначе анализирует объект.

...