【发布时间】:2013-08-10 03:31:03
【问题描述】:
我正在使用 Firebase 依赖项的最新版本 at the moment,即 1.0.2,但在正确解析我的 pojo 时遇到问题。
问题是,架构可以随时更改,但我不希望我的应用程序因此崩溃:
D/AndroidRuntime(14097): 关闭 VM W/dalvikvm(14097): threadid=1:线程以未捕获的异常退出(组=0x40a451f8) E/AndroidRuntime(14097):致命异常:主要 E/AndroidRuntime(14097): com.firebase.client.FirebaseException: 失败 反弹到类型 E/AndroidRuntime(14097):在 com.firebase.client.DataSnapshot.getValue(DataSnapshot.java:213)
查看依赖关系树,我发现 Firebase 使用的是 Jackson 映射器 1.9.7,因此注释 @JsonIgnoreProperties(ignoreUnknown = true") 不是一个选项。此外,对象映射器被包装到此 Firebase 对象中,因此我无法配置 DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES 属性(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES 用于 Jackson 1.9 及之前版本)。
有没有办法设置这个属性,无论是作为类级别的注释还是配置映射器或任何其他机制?
最好的解决方案是 Firebase 1.0.3 开始使用 Jackson 2.0,但不知道这是否是他们现在关心的事情。
注意:我已经考虑过排除传递 Jackson 1.9.7 依赖项并添加 Jackson 2.0 以便我可以访问此 ignoreUnknown 功能,但我认为这不是一个可行的选择,因为我将更改市长版。
【问题讨论】:
-
我已经联系了 Firebase Android SDK 开发人员,似乎应该可以将 Jackson 更新到 2.0。请继续关注更新!
-
好消息!感谢您的信息。