开发者社区 问答 正文

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

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

原提问者GitHub用户ivendear

展开
收起
大圣东游 2023-04-21 12:07:21 513 发布于北京 分享
分享
版权
举报
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 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 换地方了:

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

    原回答者GitHub用户wenshao

    2023-04-21 15:01:03 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址: