code: private SortedSet<WeekOfMonth> readWeeksOfMonth(JSONObject json) {
  
          try {
              JSONArray array = json.getJSONArray(JsonKey.PATTERN_WEEKS_OF_MONTH);
              if (null != array) {
                  SortedSet<WeekOfMonth> result = new TreeSet<>();
                  for (int i = 0; i < array.length(); i++) {
                      try {
                          WeekOfMonth week = WeekOfMonth.valueOf(array.getString(i));
                          result.add(week);
                      } catch (JSONException e) {
                          LOG.debug("Could not read week of month from JSON. Skipping that particular week of month.", e);
                      }
                  }
                  return result;
              }
          } catch (JSONException e) {
              LOG.debug("Could not read week of month information from JSON", e);
          }
          return new TreeSet<>();
      }
docs: Read "weeks of month" information from JSON.
  @param json the JSON where information is read from.
  @return the list of weeks read, defaults to the empty list.