fastjson 使用 SerializerFeature.WriteClassName 特性生成的类名是包含完整的包名和类名。这在跨语言实现数据交换时不太理想。
最好能提供类名的映射,例如可以自定义 com.gitee.beans.Person 映射为 Person 短名称。
可参考 fst 的做法:
conf.registerCrossPlatformClassMapping("list", "java.util.Arrays$ArrayList");
参考 https://github.com/RuedigerMoeller/fast-serialization/wiki/JSON-serialization
2条答案
按热度按时间yptwkmov1#
你好,我也碰到了这样的问题,请问目前fastjson是否实现了这个功能
d7v8vwbk2#
可以参考这里自定义:
ParserConfig.getGlobalInstance().apply {
isAutoTypeSupport =true
addAutoTypeCheckHandler { clazzName, clazz, feature ->
clazzName?.let { Class.forName(clazzName) }
}
}