为什么在改造中需要 addConverterFactory

我的问题是关于改造和 GSON。我知道 GSON 用于 JAVA 对象 <-> JSON 。我知道 Retrofit 会解析我们的响应。我不明白为什么我们需要 GsonConverterFactory 。还有为什么在改造中需要 addConverterFactory



潇潇雨雨
浏览 140回答 4
4回答

繁花如伊

更新:Kotlin 中的 Pojo 对象是数据类,注解的使用与 Java 中一样回答:如果您的应用程序是 Restful,那么从 / 向服务器获取和发送数据需要添加转换器工厂,只是为了改造可以将JSON数据(从服务器获取)转换为Java(模型)对象(POJO),以在Android项目中使用。有一些转换器库用于将 JSON 转换为 Java 对象,(GSON、Jackson..等)您必须决定要在项目中使用哪个转换器并添加相同的工厂app.gradle 中的依赖项implementation "com.squareup.retrofit2:converter-gson:VERSION"和改造设置中的工厂GsonConverterFactory或者JacksonConverterFactoryRetrofit.Builder().addConverterFactory(GsonConverterFactory.create());此外,如果远程数据类型是 XML,则需要添加SimpleXmlConverterFactory

至尊宝的传说

如果 json 转换器不能满足您的需求,您需要添加自定义转换器工厂以对对象进行序列化和反序列化。考虑这种情况。我希望你会发现这篇文章很有帮助。

三国纷争

世界不仅仅是json和gson。您可以使用其他格式来实现 Rest API,即 XML。此外,在 json 解析器的世界中,不仅有gsonJackson 和 Moshi,而且更像是这样。在 Retrofit 中维护所有可能的格式转换器是极其困难的,因此它将解析卸载到实现转换器接口的类。将其置于工厂之后,Retrofit 甚至可以将这些转换器的创建解耦,因此它可以针对不同的响应和请求使用不同的转换器。这也允许您在同一个 Retrofit 实例中拥有多个转换器,这也是一种让您实现自己的转换器的简单方法。总而言之,这种解耦比将其与特定库耦合具有更大的灵活性。

冉冉说

如果您使用的是 Spring,您应该创建一个映射器配置(或使用默认值,如本例所示),在改造配置中,您应该使用以下代码:@Beanfun retrofitBuilder(): Retrofit.Builder {&nbsp; &nbsp; return Retrofit.Builder()&nbsp; &nbsp; &nbsp; &nbsp; .addConverterFactory(JacksonConverterFactory.create(ObjectMapper()))}然后,在您的应用程序中可以读写 Kotlin 数据类 Json,即使没有 @ 信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java