我的數組是一個事件列表,我需要用我的JSON文件中的信息初始化每個事件。我創建了這個簡單的設置基於我在這裏找到其他答案使用GSON,但我超級困惑如何gson.fromJSON調用工作如何正確格式化此gson.fromJson調用?
我有3個變量,我想從JSON文件檢索事件 - 開始日期,結束日期和摘要。 JSON是否自動將它們從JSON分配給它們在事件中的值?
這是我的JSON文件看起來像:
[
{
"dtstart": "10/31/2015",
"dtend": "10/31/2015",
"summary": "Halloween"
},
.....
]
有更多的此類事件的半打。
這是我在我的主要的Java文件代碼:
public class MainActivity extends AppCompatActivity {
Event[] mobileArray;
Gson gson = new Gson();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("academiccalendar.json"));
} catch (FileNotFoundException e){
e.printStackTrace();
}
mobileArray = gson.fromJson(br, Event[].class);
這是我的事件類:
public class Event {
private String dtsart;
private String dtend;
private String summary;
我知道這一定讓我看起來像一個完整的傻瓜。但是我無法將我的頭圍繞如何將該JSON文件轉換爲一系列事件。有人能指點我正確的方向嗎?我已經嘗試了很多StackOverflow和其他地方的其他方法,但沒有一個似乎適合我的情況
編輯:刪除我已經爲移動陣列與吉爾張貼的循環。重要的是未來的人閱讀這條消息 - 從GSON沒有初始化我的事件類中相同的命名變量,我發現這是因爲他們被設置爲私人,我試圖從我的主要活動類中分配它們。我不得不改爲公開
我不知道你可以把整個數組作爲第二個參數。我的IDE沒有給我一個錯誤,我只是不確定fromJSON調用是如何工作的。每個Event對象的dtstart,dtend和summary變量是否會通過簡單地調用這行代碼從我的JSON文件自動分配? – Johnny
是的,你應該通過mobileArray中的順序獲取所有對象。歡迎來到Gson的力量:) – Gil
太棒了,比我想象的要容易得多。你所稱的這條線是否也初始化移動陣列?即如果我的JSON文件中有17件事情,那麼mobileArray中會自動生成17個事件? – Johnny