首页 > 解决方案 > POJO类中可能使用注释的条件运算符?

问题描述

POJO类:

        @Component
    public class Device {
        @JsonAlias("is5G") 
        private String deviceType;
        }
      
       

如果设备类型为“4G”,则“is5G”应映射为“N”,否则为“Y”。可以使用注释在 POJO 类中实现这一点吗?

标签: spring-boot

解决方案


您可以使用自定义转换器来做到这一点

@JsonSerialize(converter = SerializeConverter.class)
@JsonDeserialize(converter = DeserializeConverter.class)
@JsonAlias("is5G") 
private String deviceType;

连载

public class SerializeConverter extends StdConverter<String, String> {

  @Override
  public String convert(String value) {
      return value != null && value.equals("is5G") ? "Y" : "N";
  }
}

反序列化

public class DeserializeConverter extends StdConverter<String, String> {

  @Override
  public String convert(String value) {
      return value.equals("Y") ? "is5G" : null // or another value;
  }
}

推荐阅读