package edu.mit.mitmobile2.maps; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import edu.mit.mitmobile2.Global; import edu.mit.mitmobile2.JSONParser; import edu.mit.mitmobile2.objs.MapCatItem; public class MapCategoriesParser extends JSONParser { String params = ""; // TODO move up public MapCategoriesParser() { items = new ArrayList<MapCatItem>(); } @Override public String getBaseUrl() { return "http://" + Global.getMobileWebDomain() + "/api/map/"; } ///////////////////////////////////////// @SuppressWarnings("unchecked") @Override public void parseObj() { MapCatItem mi = new MapCatItem(); try { mi.categoryName = jItem.getString("categoryName"); mi.categoryId = jItem.getString("categoryId"); JSONArray subcats = jItem.optJSONArray("subcategories"); if (subcats!=null) { for (int index=0; index<subcats.length(); index++) { //String it = subcats.getString(index); JSONObject subcat = (JSONObject) subcats.get(index); MapCatItem si = new MapCatItem(); si.categoryName = subcat.getString("categoryName"); si.categoryId = subcat.getString("categoryId"); mi.subcategories.add(si); } } items.add(mi); } catch (JSONException e) { e.printStackTrace(); } } } /* [{"categoryName":"Building Number", "categoryId":"building_number", "subcategories":[{"categoryId":"m","categoryName":"Main Campus (1-76)"}, {"categoryId":"e","categoryName":"East Campus (E1-E70)"}, {"categoryId":"n","categoryName":"North Campus (N4-N57)"}, {"categoryId":"ne","categoryName":"Northeast Campus (NE18-NE125)"}, {"categoryId":"nw","categoryName":"Northwest Campus (NW10-NW95)"}, {"categoryId":"w","categoryName":"West Campus (W1-WW15)"}]}, {"categoryName":"Building Name", "categoryId":"building_name", "subcategories":[{"categoryId":"1_999","categoryName":"1-999"}, {"categoryId":"a_c","categoryName":"A-C"}, {"categoryId":"d_f","categoryName":"D-F"},{"categoryId":"g_l","categoryName":"G-L"},{"categoryId":"m_q","categoryName":"M-Q"},{"categoryId":"r_u","categoryName":"R-U"},{"categoryId":"v_z","categoryName":"V-Z"}]},{"categoryName":"Selected Rooms","categoryId":"room"},{"categoryName":"Food Services","categoryId":"food"},{"categoryName":"Libraries","categoryId":"library"},{"categoryName":"Residences","categoryId":"residence"},{"categoryName":"Parking Lots","categoryId":"parking"},{"categoryName":"Streets and Landmarks" */