如何解决jackson - 避免序列化 getter
我有一个类,它有一些额外的用于派生值的 getter。当我用 jackson objectmapper 序列化它时,它也会写出该字段。有没有办法避免这种情况?
示例 -
public class CustomPath implements Serializable {
private String path;
private String name;
private String extension = ".txt";
@JsonCreator(mode = JsonCreator.Mode.PROPERTIES)
public CustomPath(@JsonProperty("path") String path,@JsonProperty("name") String name) {
this.path = path;
this.name = name;
}
public String getPath()
{ return this.path;}
public void setPath(String path)
{ this.path = path;}
public String getName()
{ return this.name;}
public void setName(String name)
{ this.name = name;}
public String getExtension()
{ return this.extension;}
public void setExtension(String extension)
{ this.extension = extension;}
public String getFullPath() //do not want to serialize this
{ return this.path +"/" + this.name + this.extension;}
}
像这样的类的 json 看起来像 -
{
path: somepath
name: somename
extension: .txt
fullPath: somepath/somename.txt
}
但我不想在上面的示例中序列化“fullPath”。有什么办法可以避免这种情况吗?
解决方法
您需要使用 @JsonIgnore
注释 getFullPath()
方法:
@JsonIgnore
public String getFullPath() // do not want to serialize this
{
return this.path + "/" + this.name + this.extension;
}
然后 JSON 输出将如下所示:
{
"path" : "somePath","name" : "someName","extension" : ".txt"
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。