自定义 Retrofit 转换器嵌套 JSON

Custom Retrofit converter to nest JSON

我有一个 POJO,它在字符串变量中包含一个身份验证令牌。我需要使用以下模板将其发送到我的 API:

{ “auth” : { api_key”:”XXXX” } }

我正在使用 moshi 将我的 POJO 转换为 JSON,returns

{"api-key":"XXXX"}

如何使用改装转换器在当前支架的外部添加额外的支架?

我认为您应该使用 oAuth authentication. Then, you can use an interceptor 进行改造并填充该标记。

您可以使用 Moshi-Lazy-Adapters 来包裹 json。发送正文时只需使用以下注释:

@POST("your_post_url") 
Call<YourResponseTypeHere> sendApiKey(@Body @Wrapped({"auth", "api_key"}) String apiKey);

图书馆的适配器会完成剩下的工作。而且你不需要声明一个额外的对象。