fastjosn注册自定义序列化器

自定义序列化器:

   import com.alibaba.fastjson.serializer.JSONSerializer;
   import com.alibaba.fastjson.serializer.ObjectSerializer;
   import org.springframework.boot.actuate.health.Status;

   import java.io.IOException;
   import java.lang.reflect.Type;

   public class StatusSerializer implements ObjectSerializer {
       @Override
       public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
           Status status = (Status) object;
           serializer.write(status.getCode()); // 仅序列化 code 字段
       }
   }
   

在 FastJsonConfig 中注册该序列化器:

   @Bean
   public HttpMessageConverters fastJsonHttpMessageConverters() {
       FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
       FastJsonConfig fastJsonConfig = new FastJsonConfig();
       fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
       
       // 注册自定义序列化器
       fastJsonConfig.getSerializeConfig().put(Status.class, new StatusSerializer());
       
       fastConverter.setFastJsonConfig(fastJsonConfig);
       return new HttpMessageConverters(fastConverter);
   }
   

结果展示:

"status": "UP"

不加之前:

"status": { "code": "UP", "description": "" } 

你可能感兴趣的:(开发语言,java)