杰克逊数据绑定版本 2.9.5 无法将对象解析为 JSON 字符串
jackson databinding version 2.9.5 unable to parse the object to JSON String
我们已将 Jaxkson-databinding、jackson-core 和 jackson-annotation api 的版本从 2.8.2 升级到 2.9.5。
升级后,如果我正在使用(对于 2.8.2,相同的代码工作正常)
,我的对象将变为空白 json 字符串
ObjectMapper mapper = new ObjectMapper();
mapper.setVisibilityChecker(
mapper.getVisibilityChecker().
with(JsonAutoDetect.Visibility.NONE));
但如果我将代码更改为 2.9.5 版中的代码,同样可以正常工作
mapper.setVisibilityChecker(mapper.getSerializationConfig()
.getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.NONE)
.withGetterVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE));
我在API
的变更集中找不到与此相关的版本升级变更
您的代码的第一部分似乎在使用 JsonAutoDetect.Visibility.NONE
时禁用了 POJO 字段的可见性
版本 2.9 中存在问题,已在 2.9.5 中解决。显示在这里:https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.5 and https://github.com/FasterXML/jackson-databind/issues/1947。
也许您应该试用 2.9.4。如果您的代码适用于 2.9.4。它可能会受到更改的影响。
我们已将 Jaxkson-databinding、jackson-core 和 jackson-annotation api 的版本从 2.8.2 升级到 2.9.5。 升级后,如果我正在使用(对于 2.8.2,相同的代码工作正常)
,我的对象将变为空白 json 字符串 ObjectMapper mapper = new ObjectMapper();
mapper.setVisibilityChecker(
mapper.getVisibilityChecker().
with(JsonAutoDetect.Visibility.NONE));
但如果我将代码更改为 2.9.5 版中的代码,同样可以正常工作
mapper.setVisibilityChecker(mapper.getSerializationConfig()
.getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.NONE)
.withGetterVisibility(JsonAutoDetect.Visibility.PUBLIC_ONLY)
.withSetterVisibility(JsonAutoDetect.Visibility.NONE)
.withIsGetterVisibility(JsonAutoDetect.Visibility.NONE));
我在API
的变更集中找不到与此相关的版本升级变更您的代码的第一部分似乎在使用 JsonAutoDetect.Visibility.NONE
时禁用了 POJO 字段的可见性版本 2.9 中存在问题,已在 2.9.5 中解决。显示在这里:https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.9.5 and https://github.com/FasterXML/jackson-databind/issues/1947。
也许您应该试用 2.9.4。如果您的代码适用于 2.9.4。它可能会受到更改的影响。