也许这很简单,但我被卡住了...我有一个应用程序使用Sping Boot 和springframework.web.client.RestTemplate,所以后座上有Jackson自动做JSON工作。
我想用JSON反序列化REST输入,如下所示:
{
"serial_no": 12345678,
"last_dt": [
{
"lp": "2022-04-22T15:00:00"
},
{
"bp": null
},
{
"dp": "2022-04-22T00:00:00"
},
{
"iv": "2022-04-22T00:05:11"
}
]
}
请帮助我为这个模型创建POJO...如果我创建了以下类(用lombok简化):
第一个
反序列化 * 技术上 * 没问题-我得到了一个带有serialNo Long值的对象,不幸的是,它包含类LastDt的4个示例:第一个示例(lastDt[0])的字段“lp”具有值,并且“bp”、“dp”、“iv”为空;秒(lastDt[1]):“bp”有值,“lp”、“dp”、“iv”为空等等--只有一个值被设置,其他的都没有。这与我想要得到的结果相差甚远。正如你所看到的,有四个类似于对的匿名对象有不同的键名,所以我的模型是坏的,我知道这一点,但在试图创建其他的对象时被卡住了...有人能帮助我吗?
2条答案
按热度按时间tkclm6bt1#
您可以使用@JsonAlias。其想法是在
LastDt
中有一个字段,并将所有可能的属性名称Map到该字段。不需要对
Device
进行任何更改。还有一个简单的测试:
ggazkfy82#
您应该在类中使用
@JsonInclude(JsonInclude.Include.NON_NULL)
: