@Override
	public String getJSONString() {
		StringBuilder json = new StringBuilder()
		.append("{")
			.append(super.getJSONBaseString());
			if(this.getRepeat() != null) {
				json.append("\"repeat\":{");
				for(int i=0;i<7;i++) {
					json.append("\"").append(Daily.days[i]).append("\": ").append(this.getRepeat()[i]).append(",");
				}
				json =json.deleteCharAt(json.length()-1);
				json.append("},");
			}
			json.append("\"streak\":").append(this.getStreak()).append(",");
			json.append("\"completed\":" + (this.isCompleted() ? "true":"false"));
			json.append(",")
			.append("\"checklist\":[");
			if(this.getChecklist() != null && !this.getChecklist().getItems().isEmpty()) {
				for(ChecklistItem item : this.getChecklist().getItems()) {
					json.append("{")
						.append("\"text\":").append(JSONObject.quote(item.getText())).append(",")
						.append("\"id\":").append(JSONObject.quote(item.getId())).append(",")
						.append("\"completed\":").append(item.isCompleted() ? "true" : "false")
					.append("},");
				}
				json.deleteCharAt(json.length()-1);
			}
			json.append("]")
			.append("}");
		return json.toString();
	}