我可以自动解析具有非定义属性的JSON吗?

时间:2017-05-31 03:46:30

标签: json jackson

我目前正在使用jackson序列化/反序列化我的对象:

public class Person {
  private String firstName;
  private String lastName;
  //getter & setter
}
反序列化后,Json字符串将如下所示:

{ 
  "person" : {
              "firstName": "john",
              "lastName" :  "doe"
              }
 }

现在我想再增加一个字段,它是全名,它是从 firstname lastname 组合而来的。所以JSON看起来像这样

{ 
      "person" : {
                  "firstName": "john",
                  "lastName" :  "doe",
                  "fullName" : "john doe"
                  }
     }

我可以通过向类Person添加更多属性来实现这一点,但我不太喜欢,杰克逊提供的注释是否可以自动支持此案例? 我的Person类仍然是相同的(可能添加更多方法但不是属性),然后Json字符串包含一些额外的数据。

由于

1 个答案:

答案 0 :(得分:3)

Jackson(默认情况下)会在类中查找getter以决定在JSON中序列化的内容。您可以在Person上添加getter方法,以便在JSON中添加您想要的额外字段,而不管Person类中的字段:

public String getFullName() {
    return firstName + " " + lastName;
}

根据Java Beans惯例,JSON中字段的名称将显示为"fullName"