class Id {
private int oid;
@Deprecated
public int getOID() {
return oid;
}
public int getOid() {
return oid;
}
public void setOid(int oid) {
this.oid = oid;
}
@Override
public String toString() {
return "oid=" + oid;
}
}
您需要创建一个具有额外配置的接口:
interface IdIgnoreConflictMixIn {
@JsonIgnore
int getOID();
@JsonProperty
int getOid();
}
现在,您需要注册此接口:
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class JsonMixInApp {
public static void main(String[] args) throws IOException {
Id id = new Id();
id.setOid(1);
ObjectMapper mapper = new ObjectMapper();
mapper.addMixIn(Id.class, IdIgnoreConflictMixIn.class);
mapper.writeValue(System.out, id);
}
}
1条答案
按热度按时间xfb7svmp1#
如果不能修改
POJO
您可以实现自定义序列化程序或使用mixin特性。假设您的类如下所示:
您需要创建一个具有额外配置的接口:
现在,您需要注册此接口:
以上代码打印:
另请参见:
特定类中特定类型的自定义序列化程序
@jsonignore注解的等效代码设置是什么?
jackson解析json时使用未 Package 的根,但不能设置@jsonrootname
使序列化程序重写特定的忽略字段