androidによるjsonデータの解析


サーバ側からwebserviceを介して渡されたjsonデータフォーマットは、次のようになります.
{"DiaryCategory":[{'diarycount':3, 'notebookid':22, 'notebookname'=test},{'diarycount':0, 'notebookid':23, 'notebookname'=nihao }]}
Androidでのjsonデータ解析により、Listを取得
Notebook 

public class Notebook {
	private int id;
	private String notebookname;
	private int diarycount;

	public Notebook() {
		super();
	}
	
	public Notebook(int id, String notebookname, int diarycount) {
		super();
		this.id = id;
		this.notebookname = notebookname;
		this.diarycount = diarycount;
	}
	
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getNotebookname() {
		return notebookname;
	}
	public void setNotebookname(String notebookname) {
		this.notebookname = notebookname;
	}
	public int getDiarycount() {
		return diarycount;
	}
	public void setDiarycount(int diarycount) {
		this.diarycount = diarycount;
	}

	@Override
	public String toString() {
		return "Notebook [diarycount=" + diarycount + ", id=" + id
				+ ", notebookname=" + notebookname + "]";
	}
	
}
解析コードは次のとおりです.
String jsonString = webserviceOp(request);
		JSONArray jsonObjs;
		try {
			jsonObjs = new JSONObject(jsonString).getJSONArray("DiaryCategory");//  json    
			
			String s = "";
			for (int i = 0; i < jsonObjs.length(); i++) {
				Notebook notebook = new Notebook();
				JSONObject jsonObj = (JSONObject) jsonObjs.opt(i);
				int id = jsonObj.getInt("notebookid");
				notebook.setId(id);
				String notebookname = jsonObj.getString("notebookname");
				notebook.setNotebookname(notebookname);
				int diarycount = jsonObj.getInt("diarycount");
				notebook.setDiarycount(diarycount);
				
				listNoteBook.add(notebook);
			}
		} catch (JSONException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}