1.x版本的ParserConfig.getGlobalInstance().addAccept()如何兼容?
原提问者GitHub用户ivendear
在FastJSON 1.x版本中,可以使用ParserConfig.getGlobalInstance().addAccept()方法来添加白名单,允许反序列化指定的类。在FastJSON 2.x版本中,这个方法已经被废弃,不再支持。如果需要兼容1.x版本的代码,可以使用以下方法来添加白名单:
// 创建一个ParserConfig对象 ParserConfig config = new ParserConfig(); // 添加白名单,允许反序列化指定的类 config.addAccept("com.example.User"); // 使用JSON.parseObject方法反序列化JSON字符串 User user = JSON.parseObject(jsonStr, User.class, config); java 这样就可以在FastJSON 2.x版本中使用白名单功能,兼容1.x版本的代码了。需要注意的是,这种方法只能用于反序列化操作,不能用于序列化操作。如果需要进行序列化操作,可以使用SerializerFeature类来设置序列化选项,例如:
// 创建一个SerializerFeature对象 SerializerFeature feature = SerializerFeature.WriteClassName; // 使用JSON.toJSONString方法序列化Java对象 String jsonStr = JSON.toJSONString(obj, feature); java 这样就可以在FastJSON 2.x版本中使用序列化选项,兼容1.x版本的代码了。
换地方了:
JSONFactory.getDefaultObjectReaderProvider().addAutoTypeAccept("com.mycompany.xxx");
原回答者GitHub用户wenshao
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。