在Spring(Java 17)中是否有处理这种数据(在请求体中)的最佳实践?
数据示例:
[
{
"type": "message",
"common_data": "something",
"payload": {"text": "something"}
},
{
"type": "id",
"common_data": "something",
"payload": {"id": 42}
}
]
我的意思是JSON请求是一个具有不同有效负载类型的对象列表(所有类型都是确定的)
1条答案
按热度按时间rsaldnfx1#
一个解决方案是使用@JsonTypeInfo。这允许您根据某些属性(在您的情况下,类型)将其转换为不同的类型。
对于简单的用例,它可以是一个很好的解决方案,在这里阅读更多关于它的信息:https://www.baeldung.com/jackson-inheritance
不过,这会给你的应用程序带来一些Jackson的“魔力”。一个更简单的替代方案是反序列化为一个更通用的dto,包含所有字段,然后使用一个Map器(或工厂)来Map/创建基于此对象的示例: