首先把我遇到的須要解析的json數據 結構 給你們粘貼出來:
json
{數組
"tradelist":微信
{"2015年08月":數據結構
[{"type":"用戶充值","createdatetime":"2015-08-03 16:08:59","changemoney":9999.99}]ui
}this
}這就是須要解析的數據結構。spa
解析方法 我也很少說什麼啦!直接給打擊貼代碼:.net
JSONObject jo = new JSONObject(String str);// 這裏的jo就是整個語句,str 也就是後臺返回給你 的數據結構。開發
JSONObject jotList = jo.getJSONObject("tradelist");get
Iterator<String> tradelistkeys = jotList.keys();
// 這裏的tradelistkeys就是全部的日期,例如「2015年8月」,「2015年9月」
while (tradelistkeys.hasNext()) {// 迭代每個日期
String key = tradelistkeys.next();// 獲得日期
JSONArray detailArray = jotList.getJSONArray(key);//
// 這裏經過「2015年8月」這個key獲得他對應的那個數組
ResponseTradeRecord info = new ResponseTradeRecord();
// 這個是自定定義的類,用來承載信息的,裏頭2個參數,一個data是記錄日期,一個list詳細信息
info.ymtime = key;
for (int i = 0; i < detailArray.length(); i++) {// 遍歷數組
JSONObject detail = detailArray.getJSONObject(i);
String type = detail.getString("type");
// Log.e("type:", type);
String createdatetime = detail.getString("createdatetime");
// Log.e("createdatetime:", createdatetime);
String changemoney = detail.getString("changemoney");
// Log.e("changemoney:", changemoney);
TradeListItem detailItem = new TradeListItem();(這個實體類是item 裏面的數據)
detailItem.type = type;
detailItem.createdatetime = createdatetime;
detailItem.changemoney = changemoney;
// Log.e("detailItem:", "" + detailItem);
detailList.add(detailItem);}
info.mTradeListItem = detailList;
group_list.add(info);
mLVTradeRecord.setAdapter(new ExpandableListViewaAdapter(getActivity(), group_list, detailList));
固然 這裏用的是ExpandableListView 列表展現的數據。
適配器是用:BaseExpandableListAdapter
另外再給你們貼出我寫的實體類:
public class ResponseTradeRecord {
public String ymtime;// string
public ArrayList<TradeListItem> mTradeListItem;
/**
* @return the ymtime
*/
public String getYmtime() {
return ymtime;
}
/**
* @param ymtime
* the ymtime to set
*/
public void setYmtime(String ymtime) {
this.ymtime = ymtime;
}
/**
* @return the mTradeListItem
*/
public ArrayList<TradeListItem> getmTradeListItem() {
return mTradeListItem;
}
/**
* @param mTradeListItem
* the mTradeListItem to set
*/
public void setmTradeListItem(ArrayList<TradeListItem> mTradeListItem) {
this.mTradeListItem = mTradeListItem;
}
}
另一個實體類是Listview中item裏面的數據:
public class TradeListItem {
public String id;// 編號 string
public String type;// 類型 string
public String createdatetime;// 日期 string
public String changemoney;// 金額 string
/**
* @return the id
*/
public String getId() {
return id;
}
/**
* @param id
* the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* @return the type
*/
public String getType() {
return type;
}
/**
* @param type
* the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* @return the createdatetime
*/
public String getCreatedatetime() {
return createdatetime;
}
/**
* @param createdatetime
* the createdatetime to set
*/
public void setCreatedatetime(String createdatetime) {
this.createdatetime = createdatetime;
}
/**
* @return the changemoney
*/
public String getChangemoney() {
return changemoney;
}
/**
* @param changemoney
* the changemoney to set
*/
public void setChangemoney(String changemoney) {
this.changemoney = changemoney;
}
}
自定義的適配器就不給你們貼了。在網上查一下均可以找到的!
這是我我的QQ:2268214831 微信號:hanxinghui0817 若是有誰用到不理解的,能夠加QQ或者微信私聊我!但願此博文對安卓開發初期的者有幫助。