9.SpringBoot中使用fastjson和jackson序列化返回前端总结

文章目录

一、前言

环境:SpringBoot 2.1.5.RELEASE

需求:一些涉及到前后端的项目接口返回的实体类进行序列化, 一些字段可能需要特定的格式化,例如Float的字段会带.0后缀,其他的可能要求保留两位小数或者其他的格式化需求。
通过增加返回Vo实体的字段,进行循环方法处理是常规的解决方案,
但是其实无论fastjson还是jackson都是支持自定义序列化实现类,通过注解方式来改变返回字段的格式。

二.springboot默认使用的jackson的序列化和反序列化

//实体类
@Data
public class User {
    @JsonSerialize(using=CustomDoubleIntSerialize.class)
    private Float newUsers;
    }
    
//自定义序列化    
public class CustomDoubleIntSerialize extends JsonSerializer {
    private DecimalFormat df = new DecimalFormat("###.##");

    @Override
    public void serialize(Float value, JsonGenerator jgen,
                          SerializerProvider provider) throws IOException,
            JsonProcessingException {
        jgen.writeString(df.format(value));

    }
}    
    
    

三.springboot使用的fastjson的序列化和反序列化

//实体类
@Data
public class User {
    @JSONField(serializeUsing = AValueSerializer.class)
    private Float newUsers;
}
//自定义序列化实现
public class AValueSerializer implements ObjectSerializer {
    private DecimalFormat df = new DecimalFormat("###.##");
    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType,
                      int features) throws IOException {
        Float value = (Float) object;
        String text = df.format(value) + "元";
        serializer.write(text);
    }
}

四.总结

上面的使用只是单个序列化的例子,像是时间格式、数字格式或者其他、格式其实都是可以按照上面的方法去进行自定义,优雅的通过注解解决了json格式的返回问题。

展开阅读全文

页面更新:2024-04-15

标签:小数   注解   后缀   字段   前言   实体   常规   例子   优雅   接口   解决方案   需求   格式   方式   方法   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top