我(服务器Java开发人员)和我的两个同事(iOS和Android开发人员)遇到问题(实际上是争执)。

移动开发人员的意见:我必须替换他们从我的服务器中检索到的JSON,将所有空字段(此字段可以是我的自定义对象的字段)替换为空引号(请注意,Java是一种具有静态类型的语言) 。这样做的原因:他们找不到解决方案,该解决方案允许将我的JSON(映射到对象)反序列化(如果它具有空值)。

我的观点:java序列化程序不能在值级别上操作,只能在类型级别上操作。因此,我只能为某些类编写序列化程序。而且,我不知道为什么,但是空引号而不是null在我看来是非常不好的做法,将来可能会产生许多问题。

最佳答案

假设您正在尝试推断字段的类型,因此,一个假设的名为f的通常包含number

这对我来说很有意义,因为您正在将一种强类型语言与一种非强语言相结合。

一旦f实际上是null服务器端,是否有必要将一个空字符串替换为null值?不对我

我通常会邀请我的团队对此类问题保持一致,因为对于拥有如此可变领域的新手而言,这可能会更加棘手。而且,说实话,一个空字符串并不能告诉我您没有实际值,相反,在我看来,您有一个并且是一个空字符串!

也就是说,涉及null值的方法对我来说听起来更加连贯。

除了在其他响应中已经讨论过的其他建议之外,另一种解决方案可能是清除这些字段,但它破坏了其父对象的结构,并且仍然可能导致比在那里使用null严重得多的问题。

在最坏的情况下,如果他们不想处理null值,则可以引入一个用默认值替换它们的层来绕过它们的侧面。这样,您将永远说出api是有意义的。

09-30 17:27
查看更多