![](/img/trans.png)
[英]Retrofit 2.0 get array of json object as a result of post request
[英]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.