[alibaba/fastjson]1.2.61版本使用valueFilter抛出NoSuchMethodError

2024-08-28 536 views
3
问题描述

1.2.61版本使用valueFilter抛出NoSuchMethodError,1.2.60版本正常。我不太确定是我使用的姿势不对,还是bug

异常信息
Caused by: java.lang.NoSuchMethodError: com.alibaba.fastjson.serializer.JavaBeanSerializer.processValue(Lcom/alibaba/fastjson/serializer/JSONSerializer;Lcom/alibaba/fastjson/serializer/BeanContext;Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;Ljava/lang/Integer;
    at com.alibaba.fastjson.serializer.ASMSerializer_1_QueryRepayOrderReq.writeNormal(Unknown Source)
    at com.alibaba.fastjson.serializer.ASMSerializer_1_QueryRepayOrderReq.write(Unknown Source)
    at com.alibaba.fastjson.serializer.JSONSerializer.write(JSONSerializer.java:285)
    at com.alibaba.fastjson.JSON.toJSONString(JSON.java:745)
    at com.alibaba.fastjson.JSON.toJSONString(JSON.java:679)
...
抛出异常的代码
JSON.toJSONString(req, (ValueFilter) (object, name, value) -> {
    if (value instanceof BigDecimal) {
       return ((BigDecimal) value).stripTrailingZeros();
    }
    return value;
});
fastjson依赖

image

回答

9

这个问题解决了吗

3
2780 未修复啊
4

1.2.62 Mac 不行,centos 可以

8

我windows上面可以,mac上面不行,但是先执行一下不带过滤器的序列化代码后就正常了。很奇怪。。。

7

请问各位是怎么解决这个问题的?

6

@minghu-zhang Mac 系统 暂时使用 1.2.60 版本是可行的

1

@itellyou-com 1.2.60 mac系统不行。今天刚试过。 大佬啥时候才能修复啊

3

@itellyou-com 不好意思 我使用的是1.2.62版本 您说的是对的。 但是为什么1.2.60版本可以 62的版本不行呢? 好奇怪啊

5

@samuel072 我也没有深入研究,等官方解决吧

0

还没解决吧,还是不行吧!