[alibaba/fastjson]对象中包含get开头的非getter方法序列化会自动执行这个方法

2025-10-29 933 views
7

比如我有一个对象,里面有个方法名叫getJsonArgs(),在对这个对象进行序列化JSON.toJSONString时,发现自动执行了这个方法,引起了异常。 示例:

public class RequestBean implements Serializable {
// fields
...

// setter getter
...
public JSONObject getJsonArgs() {
        if (StringUtils.isEmpty(this.data)) {
            return new JSONObject();
        }
        return JSON.parseObject(this.data);
    }

}

在调用JSON.toJSONString(requestBean)时,自动执行了它的getJsonArgs方法

fastjson版本:1.2.53

回答

5

参考 @JSONField 注解

3

@ysdxz207 将 @JSONField(serialize=false) 加在这个方法上

3

这样是可以的,感谢提供了除改名外的另一个方案。