使用对象 属性 中的别名将映射序列化为对象
Serialize Map to Object with alias in object property
我正在尝试将 LinkedHashMap 序列化为特定对象。但是我在那个对象中的 属性 有一个不同的名字,我怎样才能以正确的方式匹配这些属性?
我尝试使用 @JsonValue 和 @JsonProperty 注释,但我在 class 上的 属性 值始终为空。
我有这张地图:
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);
您需要将映射配置应用到您的 POJO,特别是在用户名的 setter 方法中:
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class DummyUser {
private String userName;
@JsonProperty("user_name")
public setUserName(String un) {...}
}
ObjectMapper mapper = new ObjectMapper();
Map<String, String> myMap = new LinkedHashMap<>();
myMap.put("user_name", "John Doe");
mapper.readValue(myMap, DummyUser.class);
我正在尝试将 LinkedHashMap 序列化为特定对象。但是我在那个对象中的 属性 有一个不同的名字,我怎样才能以正确的方式匹配这些属性? 我尝试使用 @JsonValue 和 @JsonProperty 注释,但我在 class 上的 属性 值始终为空。
我有这张地图:
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);
您需要将映射配置应用到您的 POJO,特别是在用户名的 setter 方法中:
@Data
@AllArgsConstructor
@NoArgsConstructor
public static class DummyUser {
private String userName;
@JsonProperty("user_name")
public setUserName(String un) {...}
}
ObjectMapper mapper = new ObjectMapper();
Map<String, String> myMap = new LinkedHashMap<>();
myMap.put("user_name", "John Doe");
mapper.readValue(myMap, DummyUser.class);