code: public static <P extends Enum<P>> JSONObject optJSONObject(final JSONObject json, P e) {
          return json.optJSONObject(e.name());
      }
docs: Returns the value mapped by enum if it exists and is a {@link JSONObject}. If the value does
  not exist returns {@code null}.
  
  @param json {@link JSONObject} to get data from
  @param e    {@link Enum} labeling the data to get
  @return A {@code JSONObject} if the mapping exists; {@code null} otherwise