jackson指定接口使用不同的序列化策略?

问题描述

我的项目里有两种情况,我接手前的代码使用的是全局配置defaultPropertyInclusion = not null方式,当json字段对应的值为空时过滤,这样返回的字段参差不齐,目前这些接口已经提供给第三方使用。

我接手后写的接口都用了不同的VO,想实现不论是否有值,都要返回给前端,以保证返回的字段固定,前端获取的时候不需要判断字段是否为null。但前提是不影响旧接口:旧接口使用not null方式返回,新接口对应的VO全部返回,请问该如何配置?

简单的说就是,自定义指定的接口使用不同的序列化策略,有什么办法吗?

  • ext:旧接口由于字段参差不齐,所以第三方在建实体的时候可能少生成某些字段,如果统一全返回的话,势必会造成第三方调用时报错。因此现在的策略只能是,旧接口保持不变,新接口全部返回的方式来做,请问如何实现呢?
阅读 2k
1 个回答

VO上加@JsonInclude覆盖掉默认配置就行(还可以做一个标记接口上面加,然后新VO实现接口)
或者给老接口加@JsonInclude,然后把默认配置改回去也行


但是呢,其实没啥必要
对于前端,null和undefine用起来区别不大,不返回还能省带宽
对于java后端,关了FAIL_ON_UNKNOWN_PROPERTIES其实也就没影响(jackson默认开,spring自带的默认关)
至于“因为少了字段所以没接字段”这种情况,最好还是通过完善文档解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题