docs: public static <K, V> Map<K, V> parse(@Nullable String input, Converter<K> keyConverter, Converter<V> valueConverter) {
      Map<K, V> map = new LinkedHashMap<>();
      if (input != null) {
        FieldParser reader = new FieldParser(input);
        boolean end = false;
        while (!end) {
          String key = reader.nextKey();
          if (key == null) {
            end = true;
          } else {
            String val = StringUtils.defaultString(reader.nextVal(), "");
            map.put(keyConverter.parse(key), valueConverter.parse(val));
          }
        }
      }
      return map;
    }