bean转jsonstring 自动进行方法调用导致异常
ean转jsonstring时,自动调用了类中的方法 由于类中的方法有可能出现异常,所以,对bean的序列化过程是否不应该调用类内的方法?
类
@Data public class TermV3 {
/**
* 词语
*/
private String word;
/**
* 获取本词语在HanLP词库中的频次
*
* @return 频次,0代表这是个OOV
*/
public int getFrequency() {
return 1/0;
}
}
方法
public static void main(String[] args) {
TermV2 termV2 = new TermV2();
System.out.println(JSONObject.toJSONString(termV2));
}
相关日志输出
Exception in thread "main" java.lang.ArithmeticException: / by zero at com.yx.nlp.nlp.hanlp.v2.TermV3.getFrequency(TermV3.java:26) at com.alibaba.fastjson2.writer.ObjectWriter_1.write(Unknown Source) at com.alibaba.fastjson2.JSON.toJSONString(JSON.java:1757) at com.alibaba.fastjson2.JSONObject.toJSONString(JSONObject.java:1085) at com.yx.nlp.service.NlpImpl.main(NlpImpl.java:56)
原提问者GitHub用户wszpwsren
参考这个JSONWriter.Feature. IgnoreErrorGetter https://github.com/alibaba/fastjson2/blob/main/docs/features_cn.md
如果想在调用前识别,可以使用NameFilter https://github.com/alibaba/fastjson2/blob/main/docs/name_filter_cn.md
也可以用这个JSONWriter.Feature.IgnoreNonFieldGetter
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。