今天,在和移动端对接的过程中,发现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
3
1
下载
FASTJSON 2.0.x has been released, faster and more secure, recommend you upgrade.
最近提交(Master分支:3 个月前 )
c942c834 - 2 年前
5bc4709b - 2 年前
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐