fastjson Filter过晚执行

lokaqttq  于 2022-10-21  发布在  其他
关注(0)|答案(2)|浏览(138)

我目前有个需求,对于jsonDirect的字段序列化时,我需要进行一些处理,比如去掉CDATA block,否则无法正确序列化为json,我本来打算通过filter做到这点,结果却保存,调试后发现,filter的执行太晚了,在这之前已经判断了jsonDirect,然后直接调用了parseJson,于是就杯具了
考虑到兼容性,或许可以为Filter接口增加一个processEarly方法,让其更早的执行。如果没有兼容性问题,直接提前对于filter的处理也行

gc0ot86w

gc0ot86w1#

能否提供一个testcade

hgqdbh6s

hgqdbh6s2#

注意198行的processValue方法,在219中利用 beanContext.isJsonDirect() 作了判断,并直接处理了带有jsonDirect的字段。然后从225行开始才开始使用各种filter对属性值进行进一步处理,这时已经才迟了,因为带有jsonDirect的属性值已经在219行被序列化为json object了。

相关问题