public Venue(String jsonObjString) {
		setFoursquareJson(jsonObjString);

		JsonParser parser = new JsonParser();

		JsonObject jsonObj= parser.parse(jsonObjString).getAsJsonObject();
		setName(jsonObj.get("name").getAsString());
		setId(jsonObj.get("id").getAsString());


		JsonArray jsonArray = jsonObj.get("categories").getAsJsonArray();
		int s = jsonArray.size();

		this.categories = new HashMap<String, String>();
		this.category_icons = new HashMap<String,String>();

		for(int i = 0; i < s; i++) {
			this.categories.put(jsonArray.get(i).getAsJsonObject().get("id").getAsString(), jsonArray.get(i).getAsJsonObject().get("name").getAsString());
			JsonObject iconObject = jsonArray.get(i).getAsJsonObject().get("icon").getAsJsonObject();
			this.category_icons.put(jsonArray.get(i).getAsJsonObject().get("name").getAsString(),iconObject.get("prefix").getAsString()+"32"+iconObject.get("suffix").getAsString());
		}

		this.photos = new ArrayList<String>();
		this.icons = new ArrayList<String>();

		if(jsonObj.has("url"))
			setUrl(jsonObj.get("url").getAsString().replaceAll("�.*", ""));
		if(jsonObj.has("canonicalUrl"))
			setCanonicalUrl(jsonObj.get("canonicalUrl").getAsString());
		if(jsonObj.has("location")) {
			// e.g. location":{"address":"Ariel Way","lat":51.50721994598464,"lng":-0.2215290069580078,
			//		"distance":1943,"postalCode":"W12 7GF","city":"Shepherd's Bush","state":"Greater London",
			//		"country":"United Kingdom","cc":"GB"}
			JsonObject locObj = jsonObj.get("location").getAsJsonObject();
			if(locObj.has("address"))
				setAddress(locObj.get("address").getAsString());
			if(locObj.has("city"))
				setCity(locObj.get("city").getAsString());
			if(locObj.has("state"))
				setState(locObj.get("state").getAsString());
			if(locObj.has("country"))
				setCountry(locObj.get("country").getAsString());
			if(locObj.has("postalCode"))
				setPostalCode(locObj.get("postalCode").getAsString());
			if(locObj.has("lat"))
				setLat(locObj.get("lat").getAsDouble());
			if(locObj.has("lng"))
				setLon(locObj.get("lng").getAsDouble());

		}
		if(jsonObj.has("stats")) {
			JsonObject statObject = jsonObj.get("stats").getAsJsonObject();
			if(statObject.has("checkinsCount"))
				setCheckincount(statObject.get("checkinsCount").getAsInt());
		}
		if(jsonObj.has("hereNow")) {
			JsonObject statObject = jsonObj.get("hereNow").getAsJsonObject();
			if(statObject.has("count"))
				setHereNow(statObject.get("count").getAsInt());
		}
		if(jsonObj.has("likes")) {
			JsonObject statObject = jsonObj.get("likes").getAsJsonObject();
			if(statObject.has("count"))
				setLikes(statObject.get("count").getAsInt());
		}
		if(jsonObj.has("rating"))
			setRating(jsonObj.get("rating").getAsDouble());
		if(jsonObj.has("photos")) {
			for(JsonElement e: jsonObj.get("photos").getAsJsonObject().get("groups").getAsJsonArray()) {
				if(e.getAsJsonObject().get("type").getAsString().equals("venue")) {
					for(JsonElement e2: e.getAsJsonObject().get("items").getAsJsonArray()) {
						this.photos.add(e2.getAsJsonObject().get("prefix").getAsString().toString()+"300x100"+e2.getAsJsonObject().get("suffix").getAsString().toString());
						this.icons.add(e2.getAsJsonObject().get("prefix").getAsString().toString()+"36x36"+e2.getAsJsonObject().get("suffix").getAsString().toString());
					}
				}
			}
		}

	}