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 № 1Você 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: