title: AJV custom keyword validation
body: <p>I'm using AJV library to validate my JSON schema. I want to be able to validate <code>Startdate</code> to be a string. In the case where it is not a string, it should be converted to <code>N/A</code>. Currently, it only converts <code>undefined</code> to <code>N/A</code>. </p>
  
  <p>However, in these cases it does not work as expected:</p>
  
  <ul>
  <li><code>null</code> -> "null"</li>
  <li>0 --> "0"</li>
  <li>true --> "true"</li>
  </ul>
  
  <p>If I want all of the above to be converted to an <code>N/A</code> string, what would my customKeyword function look like?</p>
  
  <p>JSON response:</p>
  
  <pre><code>jsonResponse: {
    "Issue": {
      "StartDate": "December 17, 1995 03:24:00"
    }
  }
  </code></pre>
  
  <p>schema:</p>
  
  <pre><code>var ajv = new Ajv({
      useDefaults: true,
      coerceTypes: 'undefined'
  });
  
  const schema = {
      "type": "object",
      "properties": {
          "Issue": {
              "type": "object",
              "properties": {
                  "StartDate": {
                      "type": "string"
                      "default": "N/A",
                      "stringTypeChecker"
                  }
              }
          }
      }
  }
  </code></pre>
  
  <p>addKeyword function:</p>
  
  <pre><code>ajv.addKeyword('stringTypeChecker', {
    modifying: true,
    validate: function(){
      let foo = []
      console.log(foo)
    }
  });
  
  var valid = ajv.validate(schema, jsonResponse);
  </code></pre>