Java接口过滤为null的字段方式

 更新时间:2025年12月02日 08:40:46   作者:阳仔的屁仔  
大C的技术优化导致接口返回字段处理问题,业务架构解决规范性讨论,他们做或业务方做各有优缺点,建议他们做,可以保证对客户端的字段准确性,避免重复性工作

一、问题描述

今天在大C的同学找过来给我们提了个技术需求,让我们将接口里返回的字段全不做一下处理,若字段值为 "null" 的时候就不要返回了,他们APP会崩溃。

what ?

我想大家立刻马上会冒出这样一个问题之前不是好好的么这么突然就G了。经过一阵交流才发现是技术加方案变化导致的。

二、问题原因

根本原因就是大C要做技术优化,从之前的php代码迁移到 golang,老的php代码在他们那一层做了一个“字端为null就不返回”的过滤。

本次技术优化之后不想做这件事。

老的技术方案实现如下:

新的技术方案实现如下:

三、解决方案

业务架构解决规范性讨论

解决方案从团队角度来说无非就两种,一个就是他们做,另一个就是我们业务方做。我个人觉得的他们做更合适。

  1. 首先技术优化可以做,但是前提不能影响之前的功能性的东西,不然所有的接入放都要进行适配。对接放愿不愿意改是一回,有没有时间是另一回事。
  2. 大C对客户端负责,就一定要保证对客户端的字段的准确性,其实就是三方接口不可信。
  3. 大C来做这件事的话其他业务方都不用做重复性的动作了,这样架构也简洁。
  4. 若是业务放来做,怎么做,做到什么力度也是个问题,不可能在全局做这样的逻辑处理,除非对大C是一个API。但是显然不可能出现这样的架构设计。举个case:一个接口给大C提供了并且做了这个逻辑判断,但是某一天有个同学给大C提供了个新接口没有人提醒他做这样的逻辑处理,测试的时候各个字段都有,结果上线之后由于业务变化某个字段值没有了,客户端不就G了么。

业务放的解决方案

若是业务方做这件事的话,有两种方式。

1、按照接口返回对象过滤,使用JsonInclude注解,该注解可作用在字段上也可作用在对象上。

# 引的包
import com.fasterxml.jackson.annotation.JsonInclude;

# 具体注解
@JsonInclude(JsonInclude.Include.NON_NULL)

2、按照全局过滤使用配置。

spring:
  jackson:
    default-property-inclusion: non_null

具体采用哪种方式大家视情况而定。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos7安装JDK1.8详细过程实战记录

    Centos7安装JDK1.8详细过程实战记录

    这篇文章主要给大家介绍了关于Centos7安装JDK1.8的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-09-09
  • Java中的异常处理机制try-catch详解

    Java中的异常处理机制try-catch详解

    这篇文章主要介绍了Java中的异常处理机制try-catch详解,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-12-12
  • Java GUI实现学生成绩管理系统

    Java GUI实现学生成绩管理系统

    这篇文章主要为大家详细介绍了Java GUI实现学生成绩管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java中HashMap和TreeMap的区别深入理解

    Java中HashMap和TreeMap的区别深入理解

    首先介绍一下什么是Map。在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value
    2012-12-12
  • Java实现的时间戳与date对象相互转换功能示例

    Java实现的时间戳与date对象相互转换功能示例

    这篇文章主要介绍了Java实现的时间戳与date对象相互转换功能,结合具体实例形式分析了java日期与时间戳类型的表示与转换相关操作技巧,需要的朋友可以参考下
    2017-06-06
  • java 获取中文拼音首字母及全拼的实践

    java 获取中文拼音首字母及全拼的实践

    本文主要介绍了java 获取中文拼音首字母及全拼的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Spring事件监听器ApplicationListener的使用与原理分析

    Spring事件监听器ApplicationListener的使用与原理分析

    文章介绍了Spring中的事件监听器和事件发布机制,包括内置事件的使用和自定义事件的创建与发布,以及如何使用@EventListener注解进行事件监听,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • 解决Springboot配置excludePathPatterns不生效的问题

    解决Springboot配置excludePathPatterns不生效的问题

    这篇文章主要介绍了解决Springboot配置excludePathPatterns不生效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 使用FastJSON解析JSON发生异常的踩坑记录

    使用FastJSON解析JSON发生异常的踩坑记录

    这篇文章主要为大家详细介绍了使用FastJSON解析JSON发生异常的问题原因分析以及对应的解决方法,文章的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2025-09-09
  • Spring Boot中的属性绑定的实现

    Spring Boot中的属性绑定的实现

    这篇文章主要介绍了Spring Boot中的属性绑定的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论