有没有办法防止杰克逊的反序列化现场?

时间:2014-12-01 06:20:19

标签: java spring serialization jackson

有没有办法阻止杰克逊的字段反序列化? 但我需要序列化该字段 我尝试使用@jsonIgnoreProperties,这可以防止序列化和反序列化。

3 个答案:

答案 0 :(得分:4)

"技巧"是将@JsonProperty和@JsonIgnore组合在setter和getter上,如下例所示

 public class SerializeDemo{

      @JsonIgnore
      private String serializeOnly;


      @JsonProperty("serializeOnly")
      public String getSerializeOnly() {
        return serializeOnly;
      }

      @JsonIgnore
      public void setSerializeOnly(String serializeOnly) {
        this.serializeOnly= serializeOnly;
      }
    }

答案 1 :(得分:1)

Jackson 2.6开始,可以将属性标记为只读或只写。它比攻击两个访问器上的注释更简单,并将所有信息保存在一个地方:

public class NoDeserialization {
    @JsonProperty(access = JsonProperty.Access.READ_ONLY)
    private String prop;

    public String getProp() {
        return prop;
    }

    public void setProp(String prop) {
        this.prop = prop;
    }
}

答案 2 :(得分:0)

您可以在字段声明中使用@JsonIgnore

离。

@JsonIgnore
private Integer fieldToPrevent; // this will be avoided

private Integer regularField; // will serialize

查看here's对它的解释。

I have gave same answer here also.