code: @Override
    public Map<String, Object> parseToMap(String input)
    {
      try {
        JsonNode document = mapper.readValue(input, JsonNode.class);
        return flattener.flatten(document);
      }
      catch (Exception e) {
        throw new ParseException(e, "Unable to parse row [%s]", input);
      }
    }
docs: @param input JSON string. The root must be a JSON object, not an array.
  e.g., {"valid": "true"} and {"valid":[1,2,3]} are supported
  but [{"invalid": "true"}] and [1,2,3] are not.
  
  @return A map of field names and values