[英]Gson losing data when reconstructing deserializing object
我真的不知道該問題標題的措辭如何,因此,如果有人有更好的標題,請提出建議。 我正在嘗試對Sessions
的ArrayList進行編碼/解碼,並且每個會話都有Shot
的ArrayList。 我遇到的問題是,當我嘗試對Sessions列表進行編碼時,Gson不會為每個會話挖掘Shots數組並對其進行編碼,而只留下一個空數組:
[
{
"ANGLE":71.356865,
"DATE":"2015-11-25-11-02",
"KEY":62,
"SHOTS":[
]
},
{
"ANGLE":75.26292,
"DATE":"2015-11-25-11-02",
"KEY":63,
"SHOTS":[
]
}
]
課時班
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Session {
@SerializedName("SHOTS") @Expose
public ArrayList<Shot> shots;
@SerializedName("SCORE") @Expose
public float averageScore;
@SerializedName("DATE") @Expose
public String date;
@SerializedName("KEY") @Expose
public int pk;
...
}
鉛球課
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class Shot {
public String identifier;
@SerializedName("SCORE") @Expose
public double score;
@SerializedName("TYPE") @Expose
public int problem;
@SerializedName("PROBLEM_STRING") @Expose
public String problemString;
...
}
構建json字符串:
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
String json = gson.toJson(sessions);
在深入研究之后,當我重建對象而不是序列化對象時,數據丟失了。 這是我用來反序列化的代碼:
Gson gson = new Gson();
Type type = new TypeToken<ArrayList<Session>>(){}.getType();
sessions = gson.fromJson(sessionsString, type);
經過更多挖掘之后, 我的數據丟失與Gson的編碼/衰減無關 。 我想向Google道歉。 我的問題似乎與AsyncTask有關,我在這里重新發布了它。
首先您確定名字嗎? 其次,我看到的唯一數組是分數
"SCORE":[
]
請重新檢查json對象或使用實際數據進行更新
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.