我的api响应如下
{
"name": "jackson",
"age": 33,
"hobby_list": "[{\"name\":\"soccer\", \"priority\":2}, {\"name\":\"game\", \"priority\":1}, {\"name\":\"reading\", \"priority\":3}]"
}
我想反序列化 hobby_list
字符串值作为对象。
class Person {
@JsonProperty("name")
private String name;
@JsonProperty("age")
private Integer age;
@JsonProperty("hobby_list")
private List<Hobby> hobbyList;
}
class Hobby(
@JsonProperty("name")
private String name;
@JsonProperty("priority")
private Integer priority;
)
正如你所知,它不起作用。
Caused by: com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList<com.joont.domain.Hobby>` out of VALUE_STRING token
解决问题的最佳实践是什么?
注解?配置?自定义反序列化程序?
1条答案
按热度按时间cyej8jka1#
您可以通过注册自定义反序列化程序进行转换,如下所示:
在根目录下的pojo中使用注解
@JsonDeserialize(using = PersonDeserializer.class)
以便可以注册上述反序列化程序。附上以下参考资料:然后我能够将上面的列表字符串反序列化到对象