Kotlin: Gson에서 Moshi로 마이그레이션
5677 단어 Kotlin
Kotlin: Gson에서 Moshi로 마이그레이션
Gradle 설정
app/build.gradle
// network
def retrofitVersion = '2.3.0'
implementation "com.squareup.retrofit2:retrofit:$retrofitVersion"
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofitVersion"
// コメントアウト
//implementation "com.squareup.retrofit2:converter-gson:$retrofitVersion"
// 追加
implementation "com.squareup.retrofit2:converter-moshi:$retrofitVersion"
// 追加
def moshi_version = '1.5.0'
implementation "com.squareup.moshi:moshi:$moshi_version"
implementation "com.squareup.moshi:moshi-kotlin:$moshi_version"
구성 모듈
ClientModule
@Module
class ClientModule {
// コメントアウト
//@Provides
//@Singleton
//fun provideGson(): Gson = GsonBuilder()
// .setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
// .create()
@Provides
@Singleton
fun provideMoshi() = Moshi.Builder()
.add(KotlinJsonAdapterFactory())
.build()
// コメントアウト
//@Provides
//@Singleton
//fun provideRetrofit(gson: Gson): Retrofit = Retrofit.Builder()
// .baseUrl("http://hoge.com")
// .addConverterFactory(GsonConverterFactory.create(gson))
// .addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io()))
// .build()
// 追加
@Provides
@Singleton
fun provideRetrofit(moshi: Moshi): Retrofit = Retrofit.Builder()
.baseUrl("http://hoge.com")
.addConverterFactory(MoshiConverterFactory.create(moshi))
.addCallAdapterFactory(RxJava2CallAdapterFactory.createWithScheduler(Schedulers.io()))
.build()
@Provides
@Singleton
fun provideArticleClient(retrofit: Retrofit): DiaryApi = retrofit.create(DiaryApi::class.java)
}
이렇게 하면 돼요.
참고로 Json을 투시할 때 스네크 상자를 카멜로 바꾸는 방법
Diaries
data class Diaries(
// コメントアウト
// @SerializedName("next_offset")
@Json(name = "next_offset")
val nextOffset: Int,
val items: List<Diary>
)
Reference
이 문제에 관하여(Kotlin: Gson에서 Moshi로 마이그레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MuuKojima/items/bb51c1c85d74932b16f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)