开发者社区> 问答> 正文

1.x版本的ParserConfig.getGlobalInstance().addAccept()

1.x版本的ParserConfig.getGlobalInstance().addAccept()如何兼容?

原提问者GitHub用户ivendear

展开
收起
大圣东游 2023-04-21 12:07:21 402 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    在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版本的代码了。

    2023-04-21 21:10:26
    赞同 展开评论 打赏
  • 换地方了:

    JSONFactory.getDefaultObjectReaderProvider().addAutoTypeAccept("com.mycompany.xxx");

    原回答者GitHub用户wenshao

    2023-04-21 15:01:03
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载