我想跳过 JSON 解析中的一些特殊内容。
假代码:
class A {
String name;
Boolean isOk;
}
我的实例:
A a1 = new A("fake1", true);
A a2 = new A("nobody", false);
当 name 为“nobody”时,解析将跳过此字段。
所以我期望的 json 是:
a1 -> {"name":"fake1","isOk":"true"}
a2 -> {"isOk":"false"}
我知道有一种方法可以通过编写 TypeAdapter
或 JsonSerializer
来解决这个问题。
还有其他更通用的工具吗?
最佳答案
Jackson 默认使用 getter 方法来获取值。在 getter 中执行此操作比在自定义序列化程序中执行要简单得多:
String getName() {
return "nobody".equals(name) ? null : name;
}
如果你无法修改 getter,你可以为 Jackson 制作另一个 getter:
@JsonProperty("name")
String getNameUnlessNobody() {
return "nobody".equals(name) ? null : name;
}
// tell jackson to ignore standard getter
@JsonIgnore
String getName() {
return name;
}
但并不那么简单。
关于java - 如何过滤JSON中的一些特殊字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44521183/