杰克逊为特定财产使用吸气剂

时间:2015-08-11 14:42:50

标签: java json hibernate jpa jackson

我在实体中有一个JPA瞬态属性,它具有基于POJO中多个字段的计算值。所有这些计算都是在该属性的GETTER中完成的。

但是,杰克逊在为该POJO创建JSON时似乎没有使用GETTER。

如何配置Jackson使用getter作为属性?

我的POJO看起来像下面的

@Entity
public class ProductSummaryEntity implements Serializable {

@Basic
private String field1;
// GETTER and SETTER for Field1


@Basic
private String field2;
// GETTER and SETTER for Field2

@Transient
private String field3;

public String getField3(){
setField3(field1 + field2);
return this.field3;
}

public void setField3(String temp){
this.field3=temp;
}


}

2 个答案:

答案 0 :(得分:1)

@sghill发布的博客链接已在SO上发布,并向您展示如何自定义序列化过程:https://www.sghill.net/how-do-i-write-a-jackson-json-serializer-deserializer.html

基本上,使用@JsonSerialize(using = CustomSerializer.class)注释您的POJO,然后实现从CustomSerializer延伸的课程JsonSerializer。在您的实现中,您可以根据需要构建JSON并动态计算值或调用getter。

答案 1 :(得分:0)

不,我不认为你可以序列化瞬态场,除非有最新的东西。