用迭代法 解析 json 格式 數據

首先把我遇到的須要解析的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或者微信私聊我!但願此博文對安卓開發初期的者有幫助。

相關文章
相關標籤/搜索