在Android Studio项目中集成MoShi和改进2的最佳方式

在Android Studio项目中集成MoShi和改进2的最佳方式,android,kotlin,retrofit2,moshi,Android,Kotlin,Retrofit2,Moshi,我想知道,在我的Android Studio项目中,什么是与MoShi整合改造的最佳方式 首先,我使用moshi变频器进行改装: implementation 'com.squareup.retrofit2:converter-moshi:2.9.0' 我使用流行的插件“Json to Kotlin class”生成我的POJO: 创建新POJO时,我使用注释“MoShi(Reflect)”: 它会生成一个Pojo,其中包含如下字段: @Json(name = "image_ur

我想知道,在我的Android Studio项目中,什么是与MoShi整合改造的最佳方式

首先,我使用moshi变频器进行改装:

implementation 'com.squareup.retrofit2:converter-moshi:2.9.0'
我使用流行的插件“Json to Kotlin class”生成我的POJO:

创建新POJO时,我使用注释“MoShi(Reflect)”:

它会生成一个Pojo,其中包含如下字段:

@Json(name = "image_url")
val imageUrl: String?
问题是,我的字段名中似乎不喜欢下划线,因为我得到带有下划线的名称的空结果

在搜索中,我找到了一个解决方案。如果我使用此注释,它将起作用:

@field:Json(name = "image_url")
val imageUrl: String?
因此,我的问题是:

  • 使用
    @field:Json
    注释是将MoShi用于改装的最佳方式
  • 如果是,如何使用此注释(使用相同的插件或其他插件)轻松生成Kotlin类

  • 从Moshi文档的这一部分可以明显看出:“没有字段命名策略、版本控制、实例创建者或长序列化策略。Moshi不希望命名字段visibleCards并使用策略类将其转换为visibleCards,而是希望您只命名JSON中显示的字段visibleCards。”

    首选的方法是不使用注释,而是以与JSON中相同的方式命名字段。使用Kotlin,您可以对其他方式无效的名称使用反勾号,例如
    val`image url`:String?


    当然,您不希望在代码的其他部分使用这样的名称,为此,您应该有单独的对象来描述数据在后端的显示方式,以及另一个对象来描述数据在应用程序中的显示方式。我们将这些DTO(数据传输对象)称为

    ,从Moshi的这部分文档中可以明显看出:“没有字段命名策略、版本控制、实例创建者或长序列化策略。Moshi不想命名字段visibleCards并使用策略类将其转换为visibleCards,而是希望您仅将字段visibleCards命名为JSON中显示的名称。”

    首选的方法是不使用注释,而是使用与JSON中相同的方式命名字段。使用Kotlin,您可以对否则无效的名称使用反勾号,例如
    val`image url`:String?


    当然,您不希望在代码的其他部分使用这样的名称,为此,您应该有单独的对象来描述后端显示的数据,以及另一个对象来描述它在应用程序中的显示方式。我们称这些DTO(数据传输对象)

    谢谢你的回答。如果我在字段名称中加下划线,我就不遵守驼峰格标准。那么,如果我们这样做,我们能称之为“干净代码”吗?谢谢你的回答。如果我在字段名称中加下划线,我就不遵守驼峰格标准。如果我们这样做,我们能称之为“干净代码”吗?