gson 如何处理json关键字字段中的点,同时使用改型?

bvpmtnay  于 2022-11-06  发布在  其他
关注(0)|答案(2)|浏览(257)

我只是简单地尝试使用retrofint来执行我的rest api调用。我面临的问题是,在解析json时,一些关键字段包含点。例如:
{“数据”:{“名称.第一个”:“名字”} }
是否可以配置Retrofit(或GsonConverter)来处理此问题?我如何进行配置?

lf3rwulv

lf3rwulv1#

这既不是Retrofit的责任,也不是GsonConverter的责任,而是Gson的责任,它位于实际JSON序列化(反序列化)的底层。
你可以使用Gson的@SerializedName注解来处理那些不能用Java表示的名字:

@SerializedName("name.first")
public final String firstName;
dgenwo3n

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)
                        )
                    )

相关问题