遇到合作伙伴 API 还不能正常工作的情况。我收到的对象是这样的
{
"id": 1, // Can deserealize
"type": "HUMAN", // Can deserealize
"age": 18, // Can deserealize
"armor": {}, // JsonMappingException
"weapon": {} // Can deserealize
}
所需的解决方案是记录 JsonMappingException 并将其保存在数据库中,而不是使对象崩溃,但结果是放置空值而不是无法反序列化的对象。
{
"id": 1, // Can deserealize
"type": "HUMAN", // Can deserealize
"age": 18, // Can deserealize
"armor": null, // Replaced to null or default object
"weapon": {} // Can deserealize
}
我试图添加 DeserializationProblemHandler- 没有触发任何方法并且 DeserializationFeature - 似乎没有我需要的功能。
我怎样才能专门化 Jackson 的行为,以便我可以将此行为应用于任何对象,所以如果无法映射任何字段,我可以处理这个并替换为 null 或任何默认对象?