【发布时间】:2018-04-27 20:41:52
【问题描述】:
我有一个我正在尝试映射到 JSON 的对象,除了布尔成员之外,一切似乎都运行良好,如下所示:
public class Foo implements Serializable {
@JsonProperty("this_does_not_work")
private boolean isBar;
@JsonProperty("this_works")
private int bar;
@JsonProperty("this_works_too")
public boolean isBar() {
return isBar;
}
}
这将被序列化为:
{
this_works: ...,
this_works_too: ...
}
为什么布尔成员不能有 @JsonProperty(但他们的 getter 有)?
【问题讨论】:
-
如果把方法改成
getBar(),会不会和名字冲突? -
为我工作,在 json 中打印 3 个字段。清理,重新编译,重试
-
@AdamSkywalker 它确实打印了 3 个字段,但这只是一个示例。请删除第三个
@JsonProperty(来自getter)并告诉我它是否序列化为this_does_not_work和this_works属性:) -
我复制了一些奇怪的案例,但肯定是由变量命名引起的。你能提供一个有问题的真实样本吗?我不想调查为什么具有相同名称和随机方法的 int 和 boolean 变量最终会发生冲突
-
@AdamSkywalker 确定!这是:pastebin.com/EBd6KQ6t(这是最接近“真实”的东西,但为了简单起见,我仍然隐藏了一些属性)。同样,我很清楚,您只能通过在其 getter 上使用
@JsonProperty来重命名 [BOOLEAN!] 属性(不太可能适用于所有其他类型)。感谢您的帮助!
标签: java json serialization fasterxml