当前位置: 首页 > 面试题库 >

改装2的自定义转换器

公西俊民
2023-03-14
问题内容

我必须处理动态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触发)。

我想创建我的自定义转换器,这个问题有一个很好的示例,但是该示例适用于Retrofit 1。

我必须创建一个extends类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实现自定义转换器的简单示例。不幸的是没有找到。

我找到了这个例子,但至少对我而言,它太复杂了。

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

解决方案是要使用的GSON deserializers

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

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

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

  • 定制GSON转换器:构建使用我们的定制解串器的GSON转换器。



 类似资料:
  • 主要内容:JSF自定义转换器实例我们可以在JSF中创建自己的自定义转换器。 以下列表是我们可以在JSF中创建自定义转换器的步骤。 通过实现接口创建一个转换器类。 实现上述接口的和方法。 使用注解为自定义转换器分配唯一的ID。 JSF自定义转换器实例 打开 NetBeans IDE 创建一个Web工程:CustomConverter,其目录结构如下所示 - 创建以下文件代码,文件:index.xhtml 的代码内容如下所示 - 文

  • I'v开始寻找很好的解决方案,如何使用Spring CassandraOperations很好地持久化实体。问题的出现是因为我的实体中的某些字段不支持cassandra,例如joda DateTime。 解决方法是在java类型的同一实体中有其他字段。util。Date而不是joda DateTime,用@Transient标记未要求的字段。但这并不干净,所以我开始寻找自动自定义转换。 目前,sp

  • 实际上,我们正在使用fetchInto()将结果转换为对象列表。 例如: 。

  • 问题内容: 我正在寻找一种用于SQL中自定义单位转换的解决方案,我公司使用的数据库是Microsoft SQL Server,因此我需要编写一个SQL以返回基于“单位转换表”的转换因子 说: 单位换算表: 问题:如果我有10盒,以克为单位的鸡翅的期末存货是多少? 如何编写此sql返回“转换因子”? 提前致谢 问题答案: 我认为递归表最好找到从您期望的单位到期望的单位之间的路径。这样的事情(这假设数

  • 由来 Hutool中类型转换最早只是一个工具类,叫做“Convert”,对于每一种类型转换都是用一个静态方法表示,但是这种方式有一个潜在问题,那就是扩展性不足,这导致Hutool只能满足部分类型转换的需求。 解决 为了解决这些问题,我对Hutool中这个类做了扩展。思想如下: Converter 类型转换接口,通过实现这个接口,重写convert方法,以实现不同类型的对象转换 ConverterR

  • 在我的wicket应用程序中,我想对一些具有double(原始类型为“double”,而不是“double”类型)值的文本字段使用我自己的转换器。