package com.hupu.games.data.personal.box; import java.io.Serializable; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Set; import org.json.JSONArray; import org.json.JSONObject; import com.hupu.games.data.BaseEntity; import com.hupu.games.data.MatchEntity; import com.hupu.games.data.PlayerEntity; @SuppressWarnings("serial") public class BoxScoreResp extends BaseEntity implements Serializable { public MatchEntity mEntityHome; public MatchEntity mEntityAway; // public LinkedList<PlayerEntity> entity_home_start_player; // public LinkedList<PlayerEntity> entity_home_reserve_player; // public LinkedList<PlayerEntity> entity_away_start_player; // public LinkedList<PlayerEntity> entity_away_reserve_player; public ArrayList<PlayerEntity> mListPlayers; /** 一个key,一个中文名 */ public LinkedHashMap<String, String> mMapGlossary; public LinkedHashMap<String, String> mMapPortrait; public int i_homePlaySize; // int awayPlaySize; public int i_scoreHome = -1; public int i_scoreAway = -1; public String str_process; public int i_bId; // public LinkedHashMap<String, String> mMapHomeTotal; // // public LinkedHashMap<String, String> mMapAwayTotal; /** 解析每个球员数据 */ public void paserPlayer(JSONArray arr, ArrayList<PlayerEntity> list) throws Exception { int size = 0; PlayerEntity entity; Set<String> set = null; if (mMapPortrait != null) set = mMapPortrait.keySet(); if (arr != null) { size = arr.length(); for (int i = 0; i < size; i++) { entity = new PlayerEntity(); entity.paser(arr.getJSONObject(i), set); list.add(entity); } } set = null; } @Override public void paser(JSONObject obj) throws Exception { obj = obj.getJSONObject(KEY_RESULT); if (obj.has(KEY_SCORE_BOARD)) { // 比分牌数据 JSONObject o = obj.getJSONObject(KEY_SCORE_BOARD); i_scoreHome = o.optInt(KEY_HOME_SCORE, -1); i_scoreAway = o.optInt(KEY_AWAY_SCORE, -1); str_process = o.optString(KEY_PROCESS, null); } i_bId = obj.optInt("bid"); if (obj.has(KEY_DATA)) { // socket 接口 obj = obj.getJSONObject(KEY_DATA); } // 解析服务器返回的列表字段 if (obj.has(KEY_GLOSSARY)) { mMapGlossary = new LinkedHashMap<String, String>(); paserKeys(obj.getJSONArray(KEY_GLOSSARY), mMapGlossary); } if(obj.has("vertical")) { mMapPortrait= new LinkedHashMap<String, String>(); paserKeys(obj.getJSONArray("vertical"), mMapPortrait); } // 主客队得分解析 JSONObject oo = obj.optJSONObject(KEY_MATCH_STATS); if (oo != null) { if (oo.has(KEY_HOME)) { mEntityHome = new MatchEntity(); mEntityHome.paser(oo.optJSONObject(KEY_HOME)); } if (oo.has(KEY_AWAY)) { mEntityAway = new MatchEntity(); mEntityAway.paser(oo.optJSONObject(KEY_AWAY)); } oo = null; } // 球员比分解析 // entity_home_start_player = new LinkedList<PlayerEntity>(); mListPlayers = new ArrayList<PlayerEntity>(); JSONArray arr = obj.optJSONArray(KEY_HOME_START_PLAYER); if (arr != null) paserPlayer(arr, mListPlayers); arr = obj.optJSONArray(KEY_HOME_RESERVE_PLAYER); if (arr != null) paserPlayer(arr, mListPlayers); i_homePlaySize = mListPlayers.size(); // 客队 // entity_away_start_player = new LinkedList<PlayerEntity>(); arr = obj.optJSONArray(KEY_AWAY_START_PLAYER); if (arr != null) paserPlayer(arr, mListPlayers); arr = obj.optJSONArray(KEY_AWAY_RESERVE_PLAYER); if (arr != null) paserPlayer(arr, mListPlayers); arr = null; // 解析球队总计 homeTotals = obj.optJSONObject("homeTotals"); awayTotals = obj.optJSONObject("awayTotals"); JSONObject homePercentages = obj.optJSONObject("homePercentages"); if (homePercentages != null) { str_home_fg = homePercentages.optString("fg", null); str_home_tp = homePercentages.optString("tp", null); str_home_ft = homePercentages.optString("ft", null); homePercentages = null; } JSONObject awayPercentages = obj.optJSONObject("awayPercentages"); if (awayPercentages != null) { str_away_fg = awayPercentages.optString("fg", null); str_away_tp = awayPercentages.optString("tp", null); str_away_ft = awayPercentages.optString("ft", null); awayPercentages = null; } } public JSONObject homeTotals; public JSONObject awayTotals; private LinkedList<String> mKeys; // 主队命中率 public String str_home_fg; public String str_home_tp; public String str_home_ft; // 客队命中率 public String str_away_fg; public String str_away_tp; public String str_away_ft; }