FastJson中的注解@JSONField,一般作用在get/set方法上面,常用的使用场景有下面三个:
修改和json字符串的字段映射【name】
格式化数据【format】
过滤掉不需要序列化的字段【serialize】

    private Integer aid;
  // 实体类序列化为json字符串的时候,此类的aid字段,序列化为json中的testid字段
  @JSONField(name="testid") 
  public Integer getAid() {
      return aid;
  }

  // json字符串解析为类实体的时候,json中的id字段,写入此类的aid字段
  @JSONField(name="id")
  public void setAid(Integer aid) {
      this.aid = aid;
  }

如果是springboot项目,@JSONField不生效,需要在启动类注入配置bean

    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters() {
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter = fastConverter;
        return new HttpMessageConverters(converter);
    }

jackson提供的@JsonProperty 也支持序列化转换

    // json字符串解析为类实体的时候,json中的platformId字段,写入此类的platform_id字段
    @JsonProperty(value = "platformId")
    private String platform_id;

Q.E.D.


如人饮水、冷暖自知