使用
BeanSerializerModifier为
特定属性 自定义空序列化器:
public class CustomBeanSerializerModifier extends BeanSerializerModifier { @Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { for (BeanPropertyWriter beanProperty : beanProperties) { if (beanProperty.getAnnotation(NAifNull.class) != null) { beanProperty.assignNullSerializer(new CustomNullSerializer()); } } return beanProperties; }}其中
@NAifNull和
CustomNullSerializer定义如下:
public class CustomNullSerializer extends JsonSerializer<Object> { @Override public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeString("N/A"); }}@Target({ ElementType.FIELD })@Retention(RetentionPolicy.RUNTIME)@interface NAifNull {}然后按以下方式使用它:
ObjectMapper mapper = new ObjectMapper();mapper.registerModule(new SimpleModule() { @Override public void setupModule(SetupContext context) { super.setupModule(context); context.addBeanSerializerModifier(new CustomBeanSerializerModifier()); }});


