【发布时间】:2017-07-23 14:38:55
【问题描述】:
Jackson 不使用 has getter 方法处理我的布尔字段。例如animal.hasLegs(),对于legs 字段返回一个没有legs 字段的JSON 对象。它确实适用于 is getter 方法(person.isAwesome() 用于布尔字段 awesome)。
如何让 Jackson 对布尔字段使用 has 方法命名约定?
【问题讨论】:
-
注意:没有“has”命名约定。 JavaBeans 规范中定义了“is”约定(尽管这也是一个例外),因此为布尔值创建带有“has”、“can”、“should”或任何其他类似前缀的 getter 势必会破坏许多应用程序。不过,没有什么能阻止您创建额外的吸气剂。
-
@Kayaman 虽然它可能不是官方的,但使用
has命名是很常见的。例如,查看这个 SO 问题:stackoverflow.com/questions/3874350/… -
它仍然不在规范中。如果它在规范中,它将自动工作。
-
你试过用
@JsonProperty(value="Name of the field")注释你的getter和setter吗? -
遇到了杰克逊和
is命名的问题。故事的寓意...建议尽管有美学,但在任何地方都使用get作为属性。避免使用is、has等... 以后的编码人员不会太在意,因为您需要处理序列化。如果你真的想要一个额外的动词,也许getIsSomething()。这样你的财产至少被命名为isSomething。