使用object属性中的别名将Map映射到Object

时间:2017-12-26 19:32:44

标签: java serialization jackson objectmapper

我正在尝试将LinkedHashMap序列化为特定对象。但是我在该对象中的属性有一个不同的名称,我怎样才能以正确的方式匹配这些属性? 我尝试使用@JsonValue和@JsonProperty注释,但我在类上的属性值始终为null。

我有这张地图:

Map<String, String> myMap = new LinkedHashMap<>();
myMap.put("user_name", "John Doe");

我想序列化到这个对象:

@Data
@AllArgsConstructor
@NoArgsConstructor
public static class DummyUser {
    private String userName;
}

我正在尝试使用这种方法:

ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
mapper.convertValue(myMap, DummyUser.class);

1 个答案:

答案 0 :(得分:0)

您需要将映射配置应用于您的POJO,特别是在userName的setter方法:

-I.