Java Android FCM 将数据解析为对象



我想解析发送到手机的json。 这是我得到的:

在参数中,我得到两个字符串

UPDATE_ROUTE 

[{"card_id":"3a296050-b7dc-4f7b-a041-162817090520","t_tasks_e_dic_load_types_sj_id":132,"status_id":2,"eup":"86baeff7e","card_nr":"211","change_time":"2019-12-17T12:04:43.129Z"}]

这是我的班级:

public class FCMResponse{
@SerializedName("data")
private List<DataItem> data;

@SerializedName("type")
private String type;
}

我尝试这样做:

FCMResponse fcm = g.fromJson(""data":"+updateResponse.getData(), FCMResponse.class);

但是当我尝试解析这个或尝试解析字符串到我的 java 类时,我得到:

com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $

根据这个回应,

[{"card_id":"3a296050-b7dc-4f7b-a041-162817090520","t_tasks_e_dic_load_types_sj_id":132,"status_id":2,"eup":"86baeff7e","card_nr":"211","change_time":"2019-12-17T12:04:43.129Z"}]

您的模型类应为


import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Example {
@SerializedName("card_id")
@Expose
private String cardId;
@SerializedName("t_tasks_e_dic_load_types_sj_id")
@Expose
private Integer tTasksEDicLoadTypesSjId;
@SerializedName("status_id")
@Expose
private Integer statusId;
@SerializedName("eup")
@Expose
private String eup;
@SerializedName("card_nr")
@Expose
private String cardNr;
@SerializedName("change_time")
@Expose
private String changeTime;
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public Integer getTTasksEDicLoadTypesSjId() {
return tTasksEDicLoadTypesSjId;
}
public void setTTasksEDicLoadTypesSjId(Integer tTasksEDicLoadTypesSjId) {
this.tTasksEDicLoadTypesSjId = tTasksEDicLoadTypesSjId;
}
public Integer getStatusId() {
return statusId;
}
public void setStatusId(Integer statusId) {
this.statusId = statusId;
}
public String getEup() {
return eup;
}
public void setEup(String eup) {
this.eup = eup;
}
public String getCardNr() {
return cardNr;
}
public void setCardNr(String cardNr) {
this.cardNr = cardNr;
}
public String getChangeTime() {
return changeTime;
}
public void setChangeTime(String changeTime) {
this.changeTime = changeTime;
}
@Override
public String toString() {
return "Example{" +
"cardId='" + cardId + ''' +
", tTasksEDicLoadTypesSjId=" + tTasksEDicLoadTypesSjId +
", statusId=" + statusId +
", eup='" + eup + ''' +
", cardNr='" + cardNr + ''' +
", changeTime='" + changeTime + ''' +
'}';
}
}

你可以在课堂上获取,例如,

Gson gson = new Gson();
Example[] examples = gson.fromJson(response, Example[].class);
Example example = examples[0];

最新更新