我有TestEntity类:
@Data
public class TestEntity {
@NotEmpty(message = "strings are required")
private Set<InnerTestEntity> strings;
}
此外,我有InnerTestEntity:
@Data
public class InnerTestEntity {
@NotEmpty(message = "name is required")
private String name;
}
我有JSON文件:
{
"strings" : [
"name1",
"name2",
"name3"
]
}
这个想法是将字符串中的每个名称映射到InnerTestEntity对象中;name";字段,并将TestEntity对象与这组InnerTestEntity的对象一起使用。
当我称之为:
TestEntity test = objectMapper.readValue(*Path to JSON*, new TypeReference<>() {
});
它给了我这个错误:
无法构造
...InnerTestEntity
的实例(尽管至少存在一个创建者(:没有String参数构造函数/工厂方法从字符串值('name1'(反序列化
正确映射它的选项是什么?
在类InnerTestEntity
中使用@JsonValue
注释:
@Data
public class InnerTestEntity {
@NotEmpty(message = "name is required")
@JsonValue //This is the added line
private String name;
}
有关@JsonValue ,请参阅Javadoc