/ / Como desserializar booleano em string - spring, serialization, spring-boot

Como desserializar booleano para string - spring, serialization, spring-boot

Eu tenho uma propriedade como esta:

    @CatalogExportField(columnName = "K", headerName = "catalog name")
private Boolean mpAvailable;

Eu preciso pegar isso como string enquanto analiso em outra classe

   private CatalogExportDto convert(Variant variant, boolean willHaveProductTypeFields) {
CatalogExportDto dto = new CatalogExportDto()


.setMpAvailable(variant.isMpAvailable())

Mas aqui é booleano.

Eu preciso fazer algo assim, eu acho.

    @JsonDeserialize(using = BooleanDeserializer.class)
@JsonProperty("Timestamp")
ZonedDateTime timestamp;
@CatalogExportField(columnName = "K", headerName = "catalog nae")
private Boolean mpAvailable;

E outra aula como esta

public class BooleanDeserializer {
@Override
public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {

mas não conseguiu encontrar nenhum exemplo adequado.

isto é também

    @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface CatalogExportField {

String color() default "#56aaff";

String columnName() default "";

String headerName() default "";

String displayName() default "";
}

Respostas:

1 para resposta № 1

Você pode usar jackson, ele deserealiza seus booleanos automaticamente, há muitos exemplos no StackOverflow:

Jackson renomeia o campo booleano primitivo removendo 'é'

Fasterxml Jackson converte automaticamente um valor não booleano em um valor booleano

E você sempre pode fazer seu costume, é claro:

https://hussainpithawala.wordpress.com/2011/05/11/overriding-default-serializationdeserialization-behaviour-of-jackson-json-serializer/