4 回答

TA貢獻2012條經(jīng)驗 獲得超12個贊
更新:
Kotlin 中的 Pojo 對象是數(shù)據(jù)類,注解的使用與 Java 中一樣
回答:
如果您的應用程序是 Restful,那么從 / 向服務器獲取和發(fā)送數(shù)據(jù)
需要添加轉換器工廠,只是為了改造可以將JSON數(shù)據(jù)(從服務器獲取)轉換為Java(模型)對象(POJO),以在Android項目中使用。
有一些轉換器庫用于將 JSON 轉換為 Java 對象,(GSON、Jackson..等)您必須決定要在項目中使用哪個轉換器并添加相同的工廠
app.gradle 中的依賴項
implementation "com.squareup.retrofit2:converter-gson:VERSION"
和改造設置中的工廠
GsonConverterFactory
或者JacksonConverterFactory
Retrofit.Builder().addConverterFactory(GsonConverterFactory.create());
此外,如果遠程數(shù)據(jù)類型是 XML,則需要添加SimpleXmlConverterFactory

TA貢獻1804條經(jīng)驗 獲得超7個贊
世界不僅僅是json和gson。您可以使用其他格式來實現(xiàn) Rest API,即 XML。
此外,在 json 解析器的世界中,不僅有gson
Jackson 和 Moshi,而且更像是這樣。
在 Retrofit 中維護所有可能的格式轉換器是極其困難的,因此它將解析卸載到實現(xiàn)轉換器接口的類。將其置于工廠之后,Retrofit 甚至可以將這些轉換器的創(chuàng)建解耦,因此它可以針對不同的響應和請求使用不同的轉換器。
這也允許您在同一個 Retrofit 實例中擁有多個轉換器,這也是一種讓您實現(xiàn)自己的轉換器的簡單方法。
總而言之,這種解耦比將其與特定庫耦合具有更大的靈活性。

TA貢獻1877條經(jīng)驗 獲得超1個贊
如果您使用的是 Spring,您應該創(chuàng)建一個映射器配置(或使用默認值,如本例所示),在改造配置中,您應該使用以下代碼:
@Bean
fun retrofitBuilder(): Retrofit.Builder {
return Retrofit.Builder()
.addConverterFactory(JacksonConverterFactory.create(ObjectMapper()))
}
然后,在您的應用程序中可以讀寫 Kotlin 數(shù)據(jù)類 Json,即使沒有 @ 信息。
添加回答
舉報