对象映射字段
Object mapping fields
我有一个对象class答:
public class A {
private Long id;
private String name;
private String mail;
private String moreData;
// ...
}
class乙:
public class B {
private Long id;
private String name;
private String crc;
// ...
}
我可以使用 jackson 提供从对象 A 到 B 的字段映射,将相应的字段复制到目标对象中吗?
我需要对象
A {
Long id = 23L;
String name = "name";
String mail = "mail";
String moreData = "moreData";
// ...
}
获取为目标对象
B {
Long id = 23L;
String name = "name";
String crc = mull;
// ...
}
对象映射处理后...
是否可以使用com.fasterxml.jackson以简单的方式实现解决方案?
当然可以。尽管完全理解你为什么要这样做,或者我认为可能有比转换为 JSON 然后返回更有效的方法,但如果你想使用 Jackson,我会这样做:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
B b = objectMapper.readValue(objectMapper.writeValueAsString(a), B.class);
希望这对您有所帮助。应该做的工作。关键是告诉 Jackson 不要在未知属性上失败,这样它就会丢弃那些你不确定的属性。
我有一个对象class答:
public class A {
private Long id;
private String name;
private String mail;
private String moreData;
// ...
}
class乙:
public class B {
private Long id;
private String name;
private String crc;
// ...
}
我可以使用 jackson 提供从对象 A 到 B 的字段映射,将相应的字段复制到目标对象中吗?
我需要对象
A {
Long id = 23L;
String name = "name";
String mail = "mail";
String moreData = "moreData";
// ...
}
获取为目标对象
B {
Long id = 23L;
String name = "name";
String crc = mull;
// ...
}
对象映射处理后...
是否可以使用com.fasterxml.jackson以简单的方式实现解决方案?
当然可以。尽管完全理解你为什么要这样做,或者我认为可能有比转换为 JSON 然后返回更有效的方法,但如果你想使用 Jackson,我会这样做:
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
B b = objectMapper.readValue(objectMapper.writeValueAsString(a), B.class);
希望这对您有所帮助。应该做的工作。关键是告诉 Jackson 不要在未知属性上失败,这样它就会丢弃那些你不确定的属性。