ObjectMapper将数组转换为具有一个字段的对象集



我有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

相关内容

  • 没有找到相关文章

最新更新