【问题标题】:JSON conversion and app compatibility issuesJSON 转换和应用程序兼容性问题
【发布时间】:2015-03-05 22:25:46
【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: java android json spring


    【解决方案1】:

    【讨论】:

    • 酷!这必须与“ignoreUnknown=true”选项一起使用,它确实可以完成这项工作。我认为这种注释只适用于单个变量。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多