J.S*_*eve 2 java serialization spring spring-mvc jackson
我有一个带有“只读”函数的类,该类不应序列化为 JSON 对象。因为函数的名字以“get”开头,Jackson 抓住了它,并且似乎不尊重附加的@JsonIgnore标签:
import org.codehaus.jackson.annotate.JsonIgnore;
public class MyClass {
publicMyClass() {}
@JsonIgnore
public String getSomeValue() {return "";}
}
Run Code Online (Sandbox Code Playgroud)
我还尝试使用以下语法:
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@JsonIgnoreProperties({"someValue"})
public class MyClass {
publicMyClass() {}
public String getSomeValue() {return "";}
}
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,生成的 JSON 输出都是相同的:
{someValue:""}
Run Code Online (Sandbox Code Playgroud)
(我们在 Spring MVC 中使用 Jackson 1.9.13。)
除了重命名函数以从“get”以外的东西开始,我还能做些什么来防止杰克逊序列化这个函数的输出?
原来我们使用 Jackson 2 进行 JSON 序列化,所以我需要更改注释包位置。
杰克逊 1:
import com.codehaus.jackson.annotation.JsonIgnore
Run Code Online (Sandbox Code Playgroud)
杰克逊2:
import com.fasterxml.jackson.annotation.JsonIgnore
Run Code Online (Sandbox Code Playgroud)
随着fasterxml进口一切正常。
| 归档时间: |
|
| 查看次数: |
2248 次 |
| 最近记录: |