【问题标题】:Is there any way to prevent field from deserialization in jackson?有什么方法可以防止杰克逊中的字段反序列化?
【发布时间】:2015-01-29 03:00:02
【问题描述】:

有什么方法可以防止杰克逊中的字段反序列化? 但我需要序列化该字段 我尝试使用@jsonIgnoreProperties 这可以防止序列化和反序列化。

【问题讨论】:

    标签: java spring serialization jackson


    【解决方案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】:

      “诀窍”是在 setter 和 getter 上结合 @JsonProperty 和 @JsonIgnore,如下例所示

       public class SerializeDemo{
      
            @JsonIgnore
            private String serializeOnly;
      
      
            @JsonProperty("serializeOnly")
            public String getSerializeOnly() {
              return serializeOnly;
            }
      
            @JsonIgnore
            public void setSerializeOnly(String serializeOnly) {
              this.serializeOnly= serializeOnly;
            }
          }
      

      【讨论】:

      • 谢谢。会尝试让您知道。
      • 是的。它确实做到了“The Trick”。非常感谢
      • 现在我们还有另一个问题。我们不能在 setter 和属性中都使用 @JsonIgnore。我们的 spring web 项目给出了以下异常。 org.springframework.data.mapping.model.MappingException:不明确的映射!在字段 yyyyyy 上配置的注释 JsonIgnore 及其在类 XXXXXEntity 中的访问器方法之一!有什么想法吗??
      • 从 Jackson 2.6 开始 @JsonProperty(access = JsonProperty.Access.READ_ONLY) 应该可以,见 Frank Pavageau's answer
      【解决方案3】:

      您可以使用@JsonIgnore om 字段声明。

      例如。

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

      here's的解释。

      I have gave same answer here also.

      【讨论】:

        猜你喜欢
        • 2012-02-25
        • 2013-07-10
        • 1970-01-01
        • 1970-01-01
        • 2015-08-01
        • 2013-02-23
        • 2015-04-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多