Jackson-序列化时忽略Map超类
我有一些扩展的模型类LinkedHashMap<String,
Object>:它们定义用于包装Map的get和put方法的getter和setter。我正在尝试使用Jackson(带有RESTEasy)序列化这些类的实例,但是Jackson拒绝注意我的getter(使用注释)@JsonProperty
。而是仅序列化支持映射的键-
值对。我尝试使用@JsonAutoDetect
禁用所有方法和字段的自动检测功能,但这并没有任何改变。有没有办法防止Jackson序列化Map,还是必须创建不扩展的新模型类LinkedHashMap<String,
Object>?
回答:
我有一些扩展的模型类
LinkedHashMap<String, Object>
:它们定义了包装地图的get和put方法的getter和setter。
这是何时 不
使用继承的经典示例:您发现其他一些代码段(例如Jackson)将您的类当作其超类的实例来对待,这不是您想要的。在此类情况下(以及通常情况下),通常最好使用组合而不是继承。
我建议重写模型类以 包含
一个映射,而不是扩展一个。您获得的控制多于方式,并且最终的模型不那么脆弱。如果您需要以形式查看模型Map
,则可以实现一个asMap
呈现该视图的方法(或类似方法)。
以上是 Jackson-序列化时忽略Map超类 的全部内容, 来源链接: utcz.com/qa/400853.html