code: public <T> T readValueAs(Class<T> valueType)
      throws IOException {
      jsonParser.nextToken();
      if (valueType == String.class) {
        return valueType.cast(jsonParser.getText());
      }
      return jsonParser.readValueAs(valueType);
    }
docs: The JsonParser class exposes a number of methods for reading values, which
  are named confusingly. They also don't move the current token ahead, which
  makes us use statements like jsonParser.nextToken() everywhere in the code.
  
  This wrapper method abstracts all that.
  
  @param valueType The type of the value to be read
  @param <T>
  @return
  @throws IOException