docs: @SuppressWarnings("unchecked")
      public <T> JsonAsserter assertThat(String path, Matcher<T> matcher) {
          T obj = null;
          
          try {
              obj = JsonPath.<T>read(jsonObject, path);
          } catch (Exception e) {
              final AssertionError assertionError = new AssertionError(String.format("Error reading JSON path [%s]", path));
              assertionError.initCause(e);
              throw assertionError;
          }
  
          if (!matcher.matches(obj)) {
  
              throw new AssertionError(String.format("JSON path [%s] doesn't match.\nExpected:\n%s\nActual:\n%s", path, matcher.toString(), obj));
          }
          return this;
      }