/ / Jak deserializować boolean do stringów - wiosna, serializacja, spring-boot

Jak przekształcić boolean na string - spring, serialization, spring-boot

Mam taką nieruchomość:

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

Muszę uzyskać ten ciąg jako parsowanie w innej klasie

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


.setMpAvailable(variant.isMpAvailable())

Ale tutaj jest logiczna.

Myślę, że muszę zrobić coś takiego.

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

I inna klasa jak ta

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

ale nie mógł znaleźć żadnego właściwego przykładu.

to jest również

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

String color() default "#56aaff";

String columnName() default "";

String headerName() default "";

String displayName() default "";
}

Odpowiedzi:

1 dla odpowiedzi № 1

Możesz użyć jacksona, odrealizujesz go automatycznie, istnieje wiele przykładów w StackOverflow:

Jackson zmienia nazwę pierwotnego pola boolowskiego, usuwając „jest”

Fasterxml Jackson automatycznie konwertuje wartość nie-boolowską na wartość logiczną

I zawsze możesz zrobić swój zwyczaj, oczywiście:

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