code: private Month readOptionalMonth(JSONValue val) {
  
          String str = readOptionalString(val);
          if (null != str) {
              try {
                  return Month.valueOf(str);
              } catch (@SuppressWarnings("unused") IllegalArgumentException e) {
                  // Do nothing -return the default value
              }
          }
          return null;
      }
docs: Read an optional month value form a JSON value.
  @param val the JSON value that should represent the month.
  @return the month from the JSON or null if reading the month fails.