code: public JSONObject toJson() throws IOException {
      String base64 = new Zip().zip(getDirectory());
      Map<String, String> map = ImmutableMap.of(
        "className", this.getClass().getName(),
        BASE64_JSON_KEY, base64);
      
      return new JSONObject(map);
    }
docs: Converts this instance to its JSON representation.
  
  @return the JSON representation of this profile
  @throws IOException if an I/O error occurs