java - Jackson 如何知道何时使用 BeanSerializer 和 MapSerializer

标签 java json rest serialization jackson

我有一个 bean,其中返回 Map 作为响应,并且使用 RESTEasy 通过 REST 接口(interface)调用该 bean。

jackson 库在发送回响应时使用 BeanSerializer(内部)而不是使用 MapSerializer。

这里是否使用了任何注释来让它知道该 bean 使用哪个序列化程序。

提前致谢。

最佳答案

Jackson BeanSerializer 扩展了 BeanSerializerBase,它将使用 SerializerProvider 定义的 JsonSerializer 根据字段类型(由 TypeSerializer 定义)序列化字段。 SerializerProvider 将使用 MapSerializer 来扩展 java.util.map 的所有内容。

所以... Jackson 库使用 MapSerializer 来序列化 map ...

无论如何,您可以使用 @JsonSerialize 注释来管理 jackson 如何序列化属性,更多信息请参阅文档: https://github.com/FasterXML/jackson-databind/wiki/Databind-Annotations

问候,

卢伊克

关于java - Jackson 如何知道何时使用 BeanSerializer 和 MapSerializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38523359/

相关文章:

java - 由于某些奇怪的原因,我无法运行我的 JPA 代码.. "The length cannot be negative."

java - 从 sFtp 服务器读取文件

java - Oracle Java - 将可选日期参数添加到准备好的语句中

.net - 如何将哈希表发送到 asmx web 服务?

java - 可以从命令行运行 jar 但不能在 shell 脚本中运行 - 为什么?

rest - 如何使用长 URL 实现 RESTful?

java - 如何在我的 java 类中显示卢比符号?

python - 用python解析JSON : blank fields

json - 使用 Swift 可解码解析 JSON 字典时出错

web-services - RESTful API 是否被过度使用/误用?