1 回答

TA贡献1898条经验 获得超8个赞
看起来通过 v2.9 的默认 Jackson 行为是将任何领先的大写 getter/setter 方法小写。所以“getURLtoServer”变成了“urltoServer”。
Jackson 源代码在这里执行:https : //github.com/FasterXML/jackson-databind/blob/2.9/src/main/java/com/fasterxml/jackson/databind/util/BeanUtil.java#L246
但是,JavaBean 规范说,如果前两个字符是大写的,则不要更改任何大小写。因此,“getURLtoServer”的 JavaBean 将是“URLtoServer”。
Jackson 引入了 MapperFeature.USE_STD_BEAN_NAMING 作为强制执行 JavaBean 规范的这一部分的选项。但是,当它成为默认行为时,它似乎在 v3.x 中被删除:https : //github.com/FasterXML/jackson-databind/issues/1772
因此,对于您的情况,看起来您可以在不使用 USE_STD_BEAN_NAMING 的情况下获得 JSON 字符串“aboolean”,或者使用 USE_STD_BEAN_NAMING 获得 JSON 字符串“ABoolean”。
另一种选择是手动指定您想要的内容:
@JsonProperty("aBoolean") public boolean getABoolean() { return aBoolean; }
添加回答
举报