java - 是否可以使用 Jackson 将 JSON 字段分组到一个属性中?

标签 java json jackson

我想知道是否有任何方法可以将多个 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/

相关文章:

exception - 尝试使用 java 将文件上传到 Amazon S3 时,jackson 出现 NoSuchMethodError。

java - Spring - 找不到 key 'could not find key ' logging.exception-conversion-word'

java - 使用 Web Start/JNLP 动态加载额外的 jar 文件

java - 是否建议根据参数更改方法的返回类型?

javascript - 如何在 JSON stringify 中使用特殊字符?

java - 在 Spring MVC 中流式传输 JSON 输出

java - 使用Beanshell引用testng.xml中定义的参数

php - json_decode 到自定义类

javascript - 如何在 Kendo UI Scheduler 上显示自定义事件?

spring-boot - MapStruct 未检测构建器中的 setter