code: public static JSONObject parseQueryString(String queryString, boolean hasPath) {
          JSONObject uriParameters = new JSONObject();
          if (queryString == null) return uriParameters;
          QueryStringDecoder queryStringDecoder = new QueryStringDecoder(queryString, hasPath);
          Map<String, List<String>> parameters = queryStringDecoder.parameters();
          parameters.forEach((key, values) -> {
              if (values == null || values.isEmpty()) {
                  LOG.debug("空参数统一对应空字符串");
                  uriParameters.put(key, "");
              } else if (values.size() == 1)
                  uriParameters.put(key, values.get(0));
              else
                  uriParameters.put(key, values);
          });
          return uriParameters;
      }
docs: parse the given http query string
  
  @param queryString the standard http query string
  @param hasPath     whether the query string contains uri
  @return the parsed json object. if the given query string is empty then an empty json object is returned.