gpt4 book ai didi

android - Retrofit 2 的自定义转换器

转载 作者:IT老高 更新时间:2023-10-28 23:03:38 25 4
gpt4 key购买 nike

我必须处理动态 JSON 响应。

之前,我使用的类和注解如下:

public class ChatResponse {

@SerializedName("status")
private int status;

@SerializedName("error")
private String error;

@SerializedName("response")
private Talk response;

public int getStatus() {
return status;
}

public String getError() {
return error;
}

public Talk getResponse() {
return response;
}
}

当状态为 1(成功)时,onResponse 被触发,我可以获得一个 ChatResponse 对象。但是,当状态为 0 时,响应在 JSON 表示中为 false 并且它失败(onFailure 被触发)。

我想创建我的自定义转换器,并且 this question有一个很好的例子,但这个例子是针对 Retrofit 1 的。

I have to创建一个扩展Converter.Factory的类,但是我不知道如何覆盖这个类的方法。

其实我还有下一个:

@Override
public Converter<ResponseBody, ?> fromResponseBody(Type type, Annotation[] annotations) {

return super.fromResponseBody(type, annotations);
}

@Override
public Converter<?, RequestBody> toRequestBody(Type type, Annotation[] annotations) {

return super.toRequestBody(type, annotations);
}

此时我如何自己解析 JSON 响应?

提前致谢。

最佳答案

我正在寻找一个关于如何为 Retrofit 2 实现自定义转换器的简单示例。不幸的是,没有找到。

我找到了 this example但是,至少对我来说,这对我的目的来说太复杂了。

很高兴,我找到了解决方案。

这个解决方案是使用GSON反序列化器

我们不需要创建自定义转换器,我们只需要自定义GSON转换器

这是一个很棒的tutorial .这是我用来解析我的问题中描述的 JSON 的代码:

  • Login Deserializer : 定义如何将 JSON 解析为目标类的对象(使用条件和我们需要的任何东西)。

  • Custom GSON converter :构建一个使用我们的自定义解串器的 GSON 转换器。

关于android - Retrofit 2 的自定义转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35502079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com