title: Validate JSON against JSON Schema C#
body: <p>Is there a way to validate a JSON structure against a JSON schema for that structure? I have looked and found JSON.Net validate but this does not do what I want.</p>
  
  <p><a href="http://james.newtonking.com/archive/2009/01/04/json-net-3-5-beta-2-json-schema-validation" rel="noreferrer">JSON.net</a> does:</p>
  
  <pre><code>JsonSchema schema = JsonSchema.Parse(@"{
    'type': 'object',
    'properties': {
      'name': {'type':'string'},
      'hobbies': {'type': 'array'}
    }
  }");
  
  JObject person = JObject.Parse(@"{
    'name': 'James',
    'hobbies': ['.NET', 'LOLCATS']
  }");
  
  bool valid = person.IsValid(schema);
  // true
  </code></pre>
  
  <p>This validates to true.</p>
  
  <pre><code>JsonSchema schema = JsonSchema.Parse(@"{
    'type': 'object',
    'properties': {
      'name': {'type':'string'},
      'hobbies': {'type': 'array'}
    }
  }");
  
  JObject person = JObject.Parse(@"{
    'surname': 2,
    'hobbies': ['.NET', 'LOLCATS']
  }");
  
  bool valid = person.IsValid(schema);
  </code></pre>
  
  <p>This also validates to true</p>
  
  <pre><code>JsonSchema schema = JsonSchema.Parse(@"{
    'type': 'object',
    'properties': {
      'name': {'type':'string'},
      'hobbies': {'type': 'array'}
    }
  }");
  
  JObject person = JObject.Parse(@"{
    'name': 2,
    'hobbies': ['.NET', 'LOLCATS']
  }");
  
  bool valid = person.IsValid(schema);
  </code></pre>
  
  <p>Only this validates to false.</p>
  
  <p>Ideally I would like it to Validate that there are no fields aka <code>name</code> in there that shouldn't be in there aka <code>surname</code>.</p>