改进POST请求 - 解析两个具有相同名称的JSON对象

时间:2018-05-15 12:00:19

标签: android json post kotlin retrofit

我正在使用改造上传数据到网络服务,我得到相应的网络服务响应。上传数据具有以下结构。

enter image description here

并且响应包含以下结构。

enter image description here

正如您所看到的,上传数据和响应都包含data命名对象。所以,我的问题是我如何制作Model Class来处理这个请求和响应 data对象?。

我按照以下方式执行此操作,但错误为multiple fields having same name

data class PostDataModel(var data: PostDataFieldsModel,var status: String, var message: String,
                     @SerializedName("data") var data1: PostResponseDataFieldsModel)

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您应该为每个响应和请求创建一个模型POJO。例如,您可能在改造中具有以下端点:

@Headers({"Content-Type: application/json", "Accept: application/json"})
@POST("/login")
Call<Response<LoginResponse>> login(
        @Body LoginRequest request);

<强> LoginRequest.java

public class LoginRequest {
    DataModel data;

//getters and setters

}

<强> LoginResponse.java

public class LoginResponse {

   Integer status;
   String message;
   SecondDataModel data;

  //getters and setters
}

DataModel类应该为请求中的数据字段建模。并且您的SecondDataModel应该对响应中的那个进行建模。如果它们具有相同的数据,则可以使用相同的POJO。