今天,在和移动端对接的过程中,发现gson对空字符串,存在序列化到对象存在异常的问题,这个问题我们想从给对象设置默认值,这个我觉得对程序的侵入太深,况且容易因为疏忽,导致不全,然后采用一种统一的方式来解决,这样就可以从上层解决问题,最终我们决定采用空属性不进行序列化的方式来解决。

     首先回到fastjson,我们发现从网上的别人提的问题中,没有找到,最后在fastjson的帮助文档(https://www.w3cschool.cn/fastjson/fastjson-quickstart.html)中,我们找到了(https://www.w3cschool.cn/fastjson/fastjson-serializefilter.html)定制序列化,找到了PropertyFilter可以来控制是否进行序列换。然后在 FastJsonConfig中添加。例如下所示:

       FastJsonConfig fastJsonConfig = new FastJsonConfig();
      
        //解决空值序列化的问题,改为不序列化
       fastJsonConfig.setSerializeFilters(new PropertyFilter() {
           @Override
           public boolean apply(Object o, String s, Object o1) {
               if(o1==null){
                   return false;
               }
               return true;
           }
       });

GitHub 加速计划 / fastj / fastjson
25.69 K
6.51 K
下载
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
最近提交(Master分支:3 个月前 )
c942c834 - 1 年前
5bc4709b - 1 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐