我有一個大的JSON,我有反序列化,我只關心,如果某些部分。我使用的是POJO是這樣的:的Android科特林GSON慢的Json反序列化
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())
}
我得到的改造調試報告
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
}
}
改造適配器的有關部分只需300ms即可撥打此服務。
我的問題是:
當我應該考慮使用TypeAdapter(我選擇性能比樣板,我不介意編寫代碼型適配器一些額外的線)。但我不太明白適配器是什麼類型的,我應該在什麼情況下使用它們。
我的Json結構比我的Character Pojo有更多的屬性,我只是意識到使用transient/@Expose或者將它保留在Pojo之外導致相同的結果。這3個之間有什麼區別嗎?
,因爲我使用科特林,是否有任何庫/擴展,幫我處理這個TypeAdapter反序列化的東西?
我現在面臨着類似的問題。您的http響應有多少個字節? – ngu
200 OK(303ms),END HTTP(49063字節體) –