我只是简单地尝试使用retrofint来执行我的rest api调用。我面临的问题是,在解析json时,一些关键字段包含点。例如:{“数据”:{“名称.第一个”:“名字”} }是否可以配置Retrofit(或GsonConverter)来处理此问题?我如何进行配置?
lf3rwulv1#
这既不是Retrofit的责任,也不是GsonConverter的责任,而是Gson的责任,它位于实际JSON序列化(反序列化)的底层。你可以使用Gson的@SerializedName注解来处理那些不能用Java表示的名字:
@SerializedName
@SerializedName("name.first") public final String firstName;
dgenwo3n2#
如果您使用莫希作为JSON转换器,请将其替换为GSON转换器工厂。
val retrofit = Retrofit.Builder() .baseUrl(baseUrl) .addConverterFactory(ScalarsConverterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) //add this .addCallAdapterFactory(CoroutineCallAdapterFactory()) .client( getOkHttpClient( NetworkModule.networkModule.context, enableNetworkInterceptor(baseUrl) ) )
2条答案
按热度按时间lf3rwulv1#
这既不是Retrofit的责任,也不是GsonConverter的责任,而是Gson的责任,它位于实际JSON序列化(反序列化)的底层。
你可以使用Gson的
@SerializedName
注解来处理那些不能用Java表示的名字:dgenwo3n2#
如果您使用莫希作为JSON转换器,请将其替换为GSON转换器工厂。