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 № 1Moż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: