【发布时间】:2016-08-02 18:48:43
【问题描述】:
我有一个大的 json,我必须反序列化,我只对 if 的某些部分感兴趣。我正在使用的 Pojos 是这样的:
data class Response<T>(
val header: JHeader,
val result: T
)
data class JHeader(
val success: Int,
val error: List<String>
)
class Character{
@SerializedName("id_") val id: Int
@SerializedName("levelA") val level: String
@SerializedName("a3") val unit: String = ""
constructor(id: Int, level: String) {
this.id = id
this.level= level
}
}
改装适配器的相关部分:
val retrofit = Retrofit.Builder()
.addCallAdapterFactory(rxAdapter)
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.client(httpClient.build())
.build()
还有Impl:
fun getCharacterById(characterID: Int):Observable<Response<List<Character>>> {
return apiService.getCharacter(characterID)
.subscribeOn(Schedulers.io())
}
我收到了 300 毫秒的改装调试报告,只需调用此服务即可。
我的问题是:
我什么时候应该考虑使用 TypeAdapter(我选择性能优于样板,我不介意使用类型适配器编写几行额外的代码)。但是我不太明白适配器的用途是什么,我应该在什么情况下使用它们。
我的 Json 结构比我的 Character Pojo 具有更多的属性,我只是意识到使用瞬态 / @Expose 或将其置于 Pojo 之外会导致相同的结果。这三个有区别吗?
当我使用 Kotlin 时,是否有任何库/扩展可以帮助我处理这种 TypeAdapter 反序列化的东西?
【问题讨论】:
-
我现在也面临着类似的问题。你的 http 响应是多少字节?
-
200 OK (303ms), END HTTP (49063-byte body)