是否可以在没有模型类的情况下使用改造?

2022-09-04 07:08:10

我在改造lib中使用模型类有问题。后端端字段名称已更改。

有没有可能在没有模型类的情况下获得响应?


答案 1

是的,可以。

@POST("url")

 Call<JsonObject> register(@Query("name") String name,

                           @Query("password") String password);

只需根据您的响应编写 JsonArray 或 JsonObject,而不是 Model 类。

然后,从 JsonObject 或 JsonArray 获取数据,并按如下方式获得响应

Call<JsonObject> call = application.getServiceLink().register();

call.enqueue(new Callback<JsonObject>() {
            @Override
            public void onResponse(Call<JsonObject> call, Response<JsonObject> response) {
                JsonObject object = response.body();
                //parse object 
            }

            @Override
            public void onFailure(Call<JsonObject> call, Throwable t) {

            }
        });

答案 2

使用不同的返回值是完全可能的。我假设您当前使用Gson反序列化JSON响应,并且它们被转换为实际的类。但是,您可以选择将返回的响应转换为(或一些更具体的JSON类),在这种情况下,您将获得一个JSON项,您可以根据需要对其进行操作。像这样:JsonElement

@GET("url")
Call<JsonElement> apiCall();

推荐