Android数据模型,仅包含我需要的字段

Android数据模型,仅包含我需要的字段,android,gson,retrofit,Android,Gson,Retrofit,如果我利用改造和数据模型。数据模型是否需要API返回的所有字段?我只需要一些字段。不,您不必编写API返回的所有字段。您只能编写所需的字段,其余字段保持原样 另外,作为旁注,不要忘记使用@SerializedNamekey向模型变量添加注释,以允许对象的序列化和反序列化,这只是在使用API时要记住的一点。不,这不是必需的。如果您只需要一个字段,只需声明一个字段,并且只有此字段将获得其值。然而,您应该注意,仅声明某些字段并不意味着您只接收这些字段的值。您将获得receive all字段,但Gson

如果我利用改造和数据模型。数据模型是否需要API返回的所有字段?我只需要一些字段。

不,您不必编写API返回的所有字段。您只能编写所需的字段,其余字段保持原样


另外,作为旁注,不要忘记使用@SerializedNamekey向模型变量添加注释,以允许对象的序列化和反序列化,这只是在使用API时要记住的一点。

不,这不是必需的。如果您只需要一个字段,只需声明一个字段,并且只有此字段将获得其值。然而,您应该注意,仅声明某些字段并不意味着您只接收这些字段的值。您将获得receive all字段,但Gson converter会为您生成压缩java对象,这不是必需的,如果不需要这些值,就不要添加它们。但是,如果它们在响应中出现或不出现,您可以使用kotlin的nullable运算符,这样您就可以处理它们出现或不出现的情况。 在本例中,如果响应中存在phone,则会对其进行解析。如果它不存在,它就不会被解析。若你们不使用接线员,电话不存在,它会抛出异常

data class AdMessage(@SerializedName("body") val message: String,
                          @SerializedName("email") val email: String,
                          @SerializedName("name") val name: String,
                          @SerializedName("phone") val phone: String?)

不,您只能拥有所需的字段,其他字段将被忽略。