有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javajackson忽略@JsonIgnore?

我有一个带有“只读”函数的类,它不应该被序列化为JSON对象。因为函数名以“get”开头,Jackson会抓住它,并且似乎不尊重附加的@JsonIgnore标记:

import org.codehaus.jackson.annotate.JsonIgnore;

public class MyClass {

    publicMyClass() {}

    @JsonIgnore
    public String getSomeValue() {return "";}
}

我还尝试使用以下语法:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

@JsonIgnoreProperties({"someValue"})
public class MyClass {

    publicMyClass() {}

    public String getSomeValue() {return "";}
}

无论哪种情况,结果JSON输出都是相同的:

{someValue:""}

(我们将Jackson 1.9.13与Spring MVC一起使用。)

除了将函数重命名为以“get”以外的其他内容开头,我还能做些什么来防止Jackson序列化此函数的输出


共 (1) 个答案

  1. # 1 楼答案

    原来我们使用Jackson 2来实现JSON序列化,所以我需要更改注释包的位置

    Jackson 1:

    import com.codehaus.jackson.annotation.JsonIgnore
    

    Jackson 2:

    import com.fasterxml.jackson.annotation.JsonIgnore
    

    通过fasterxml导入,一切正常