public static RecentSearch valueOf(JSONObject json) throws JSONException { int count = json.getInt(SEARCH_COUNT); JSONObject search = json.getJSONObject(SEARCH_TYPES); Search type = null; if (search.has(TEXT_SEARCH)) { JSONObject p = search.getJSONObject(TEXT_SEARCH); String label = p.getString(SEARCH_QUERY); type = new LocationSearch(label, 1); } if (search.has(GEO_SEARCH)) { JSONObject p = search.getJSONObject(GEO_SEARCH); String query = p.getString(SEARCH_QUERY); String label = p.getString(SEARCH_LABEL); type = new LocationSearch(label, query, 1); } return new RecentSearch(type, count); }