我想知道是否有任何方法可以将多个 JSON 字段反序列化为一个 Java 属性。例如。给定这个 JSON:
{
"id" : "1",
"name" : "Bartolo",
"address" : "whatever",
"phone" : "787312212"
}
将其反序列化为此类:
public class Person {
public String id;
public String name:
@JsonProperty(names = {"address", "phone"}) //something like this
public String moreInfo;
}
so moreInfo
等于“whatever, 787312212”
或类似的内容。
如果不使用自定义解串器,这可能吗?
最佳答案
您可以使用 @JsonCreator
注释,如下所示:
String json = {"id" : "1", "name" : "Bartolo", "address" : "whatever", "phone" : "787312212" }
ObjectMapper mapper = new ObjectMapper();
Person person = mapper.readValue(json , Person.class);
并在 Person 类的构造函数中添加此
@JsonCreator
public Person(@JsonProperty("address") String address, @JsonProperty("phone") String phone) {
this.moreInfo = address + "," phone;
}
关于java - 是否可以使用 Jackson 将 JSON 字段分组到一个属性中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53445533/