簡體   English   中英

在后期改造中獲取Json Array

[英]Get Json Array in Post Retrofit

我想從發布回復中檢索數組時遇到問題

這是我的帖子

{
    "user_email": "xxxx@gmail.com",
    "user_password": "12345"
}

這是我的回復,我想獲取令牌值

{
    "status": true,
    "code": 200,
    "message": "Request Succeded: Login success",
    "data": [
        {
            "token": "bsWIVXTLuud2ZbdnUvI8037fT7D0t7MTvusBrNjskah"
        }
    ]
}

這是我的模型LoginModel.java

@SerializedName("data")
@Expose
private Data data ;

public Data getData() {
    return data;
}

public void setData (Data data) {
    this.data = data;
}

public LoginModel(String user_email, String user_password) {
    this.user_email = user_email;
    this.user_password = user_password;
}

Data.java

public String getToken() {
    return token;
}

public void setToken(String token) {
   this.token = token;
}

我之前嘗試過的代碼,文本視圖什么也不顯示

LoginModel loginModelresponse = response.body();

String token = loginModelresponse.getData().getToken();

textView.setText(token);

我想從我的帖子回復中獲取令牌。

您的數據值是令牌數組,而不是對象本身

使用令牌字符串字段創建令牌類,然后像這樣替換數據類

@SerializedName("data")
@Expose
private List<Token> data ;

要獲取令牌,您必須迭代列表

嘗試更改您的LoginModel類,因為您的響應數據對象是數組類型

public class LoginModel {
@SerializedName("status")
@Expose
private Boolean status;
@SerializedName("code")
@Expose
private Integer code;
@SerializedName("message")
@Expose
private String message;
@SerializedName("data")
@Expose
private List<Data> data = null;

public Boolean getStatus() {
return status;
}

public void setStatus(Boolean status) {
this.status = status;
}

public Integer getCode() {
return code;
}

 public void setCode(Integer code) {
 this.code = code;
 }

 public String getMessage() {
return message;
 }

public void setMessage(String message) {
this.message = message;
}

public List<Data> getData() {
return data;
}

 public void setData(List<Data> data) {
 this.data = data;
}

}

使用站點在Java中生成正確的響應類

 public class Tokens implements Serializable
    {

    @SerializedName("token")
    @Expose
    private String token;
    private final static long serialVersionUID = 1577013820593763604L;

    public String getToken() {
    return token;
    }

    public void setToken(String token) {
    this.token = token;
    }

    }
  //  -----------------------------------com.example.Response.java-----------

    package com.example;

    import java.io.Serializable;
    import java.util.List;
    import com.google.gson.annotations.Expose;
    import com.google.gson.annotations.SerializedName;

    public class Response implements Serializable
    {

    @SerializedName("status")
    @Expose
    private boolean status;
    @SerializedName("code")
    @Expose
    private long code;
    @SerializedName("message")
    @Expose
    private String message;
    @SerializedName("data")
    @Expose
    private List<Tokens> data = null;
    private final static long serialVersionUID = -3002290394951662690L;

    public boolean isStatus() {
    return status;
    }

    public void setStatus(boolean status) {
    this.status = status;
    }

    public long getCode() {
    return code;
    }

    public void setCode(long code) {
    this.code = code;
    }

    public String getMessage() {
    return message;
    }

    public void setMessage(String message) {
    this.message = message;
    }

    public List<Tokens> getData() {
    return data;
    }

    public void setData(List<Tokens> data) {
    this.data = data;
    }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM