JSON 转换和应用兼容性问题

JSON conversion and app compatibility issues

我正在使用 Spring 来管理我的 Android 客户端和 Java 后端之间的通信。特别是 class MappingJackson2HttpMessageConverter 在 Android 上来回转换 JSON 到 Java 对象。

我的问题如下:有时我需要更新应用程序,这通常会导致将额外的字段添加到构建我的模型的某些 classes 中,因此在在客户端和我的服务器之间传输的 JSON 数据。当我这样做时,应用程序的 "old" 版本与略微增强的新对象模型保持兼容至关重要。特别是,如果服务器向客户端发送一个包含太多字段的 JSON 负载(与客户端 "knows" 相比),客户端应该忽略这些字段而不会抱怨它无法正确创建对象.不幸的是,现在情况并非如此,因为如果服务器发送一个额外的字段,比如称为 "country",客户端在尝试转换对象时会抛出以下异常:

Could not read JSON: Unrecognized field "country" (class com.example.MyUser), not marked as ignorable (19 known properties: ...)

感谢您的帮助!

使用@JsonIgnoreProperties annotation

这个建议听起来有点古怪,但它是诚实的建议——不要使用 Spring。像这样复杂的框架只会导致比它们价值更多的问题,除非你想完全按照开发人员设想的方式使用它们。它们还会使您的应用程序变慢。没有它们你会过得更好,你会花更多的时间来解决这样的问题而不是它们拯救你。