1. 程式人生 > >Java中使用JSON進行parse操作時一個重要的注意事項

Java中使用JSON進行parse操作時一個重要的注意事項

最近在寫一個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變數名”的設定函式(變數名的首字母還應大寫)。