Valider JSON contre JSON Schema C#

Est-il un moyen de valider une structure JSON à l'encontre d'un JSON schéma de cette structure? J'ai cherché et trouvé JSON.Net valider mais ce n'est pas ce que je veux.

JSON.net n':

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

Cela valide pour vrai.

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);

Cela valide aussi à vrai

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);

Seulement cela valide à false.

Idéalement, j'aimerais qu'elle, afin de Valider qu'il n'y a pas de champs aka name qui ne devraient pas y être aka surname.

voulez-vous valider chaîne(schéma) vs string(objet) ou pourriez-vous utiliser un objet comme schéma?
oui, quelque chose comme SCHÉMA ...{'Name' : string , 'Cars': int ....} vs OBJ ...{'Name' : Bob, 'Pants': 2....} est faux, mais ...{'Name' : Bob, ....} est vrai. Je voudrais obtenir dans une chaîne JSON et j'aurais besoin de pouvoir comparer le schéma dans la base de données pour s'assurer qu'il est valide.
de nouveau malade, essayez de demander plus clair, peut-il que le schéma soit un objet de C# que vous avez et tu veux le tester contre entrant inconnu cordes?
Je ne suis pas sûr si je vous comprends bien, mais va ici: je reçois dans un inconnu de la chaîne et je tiens à le comparer à un schéma de la chaîne que j'ai. Que des sons comme sa sur ce que vous demandez.

OriginalL'auteur Shaun Groenewald | 2013-10-23