SpringBoot接口中返回JSON类型,通常我们会定义通用的ResultUtil工具类,当data为null,接口也会返回{...,data
,...},所以出于强迫症当为null
,接口不需要返回data字段。
在Spring Boot中,当控制器(Controller)方法使用
@RestController
注解标记时,Spring会自动处理方法的返回值,并将其转换为JSON格式的响应。当控制器方法执行完成后,Spring会检查方法的返回值类型。如果返回值是一个对象(例如实体类对象),Spring将使用已配置的消息转换器(MessageConverter)来将对象转换为JSON格式的字符串。默认情况下,Spring Boot已经配置了适用于JSON序列化和反序列化的Jackson消息转换器
所以最后解决方式使用Jackson中的注解@JsonInclude()
,参数如下:
ALWAYS
: 总是包含属性字段,无论其值是什么,包括null
值。NON_NULL
: 只包含非null
值的属性字段,忽略null
值的字段。NON_ABSENT
: 只包含非缺失(非null
、非空字符串、非空集合等)的属性字段,忽略缺失的字段。NON_EMPTY
: 只包含非空(非null
、非空字符串、非空集合等)的属性字段,忽略空的字段。NON_DEFAULT
: 只包含非默认值的属性字段,忽略与默认值相等的字段。默认值根据属性类型而定,例如数值类型的默认值为0,布尔类型的默认值为false。CUSTOM
: 自定义包含规则,需要通过自定义序列化器或其他方式实现。USE_DEFAULTS
: 使用默认的包含规则,由Jackson库的全局配置决定。🤪那使用那个就一目了然,@JsonInclude(JsonInclude.Include.NON_NULL)
最后测试接口调用:
调用前: { "success": true, "code": 200, "message": "接口调用成功!", "data": null, "time": "2023-07-13 15:12:05" } 调用后: { "success": true, "code": 200, "message": "接口调用成功!", "time": "2023-07-13 15:12:15" }
本文作者:酷少少
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!