FastJSON上没有JsonView的替代方案吗?

khbbv19g  于 2022-12-31  发布在  其他
关注(0)|答案(4)|浏览(288)

jackson中有JsonView的注解可以绑定一系列的Interface用于表示多种转换出来的字段组合格式,而FastJSON貌似只有一个@JSONFiled中的serialize参数用于表示是否显示,这样只能定义一种输出格式.不知道有没有替代JsonView的方案.对于那些Filter的方法,感觉不如注解的方便的样子...

2izufjch

2izufjch1#

@jerry-yuan 能否说明一下具体应用场景,或者您的需求,需要怎样的JsonView功能在Fastjson上实现

zed5wv10

zed5wv102#

实际上就是类似于jackson那种,可以定义若干个JSON视图(JsonView,用接口表示),然后将各个属性绑定到JSON视图上,当自动转换POJO对象为json字符串时,就会只包含特定JSON视图中绑定的字段.主要还是用在SpringMVC的自动转换响应主体部分的时候.
具体的使用方法可以借鉴一下Jackson,当时选fastjson主要还是看重了转换比较方便,然后才发现只支持指定显示或者不显示,没法定义多个显示的方案组合.

vshtjzan

vshtjzan3#

@jerry-yuan @FastJsonView和@FastJsonFilter应该可以满足你 但是需要配置FastJsonViewResponseBodyAdvice在Spring中

eqqqjvef

eqqqjvef4#

很有可能是FastJson默认过滤使用的是@ControllerAdvice增强器,此增强器只正对于@controller进行增加,如果你的Controller使用的是非@controller(如@RestController),就无法增强(可以参考:FastJsonViewResponseBodyAdvice增强器源码,上面的注解只为:@ControllerAdvice);
如果你用的是@RestController
解决方案:
@RestControllerAdvice
public class SupportRestControllerFastJsonViewResponseBodyAdvice extends FastJsonViewResponseBodyAdvice {
}

相关问题