Java中使用JSON進行parse操作時一個重要的注意事項
阿新 • • 發佈:2019-02-01
最近在寫一個Android專案,其中包含了客戶端與服務端的通訊。通訊使用了JSON來包裝傳輸的資料,當在客戶端試圖解析從服務端得到的String時,解析出來的Class裡的成員變數的值總是null,調了一整天脾氣都調沒了。
結論如下:
假設要解析的類為User,定義如下:
public class User{ private int id; private String title; private String pic; public int getId() { return id; } public String getTitle() { return title; } public String getPic() { return pic; } public void setPic(String pic) { this.pic = pic; } public void setTitle(String title) { this.title = title; } public void setId(int id) { this.id = id; } }
JSON解析的語句如下:
JSONObject j = new JSONObject(paramString);
List<User> list = JSON.parseArray(j.getString("user_list"), User.class);
像這麼寫是可以正常執行的。但是如果User類裡沒有setPic(),serTitle(),setId()這三個函式,最後得到的list裡面的User裡的pic,title,id的值都會是null和0。也就是說JSON為了把值放入解析的目標類裡給你,那你就必需在你的類裡面為每一個需要的成員變數寫“set變數名”的設定函式(變數名的首字母還應大寫)。