La désérialisation d'un type inconnu dans JSON.NET

J'ai juste eu une prise de JSON.NET et sa été très bien jusqu'à présent.

Cependant, je ne peux pas comprendre comment déterminer la type d'un objet sérialisé lors de la désérialisation il.

Comment puis-je déterminer les objets de la classe pour le lancer?

Pour préciser ma question, disons que j'ai voulu faire ce

string json = <<some json i do'nt know>>
var data = JsonConvert.DeserializeObject(json);
if (data is Person)
{
   //do something
}
else if (data is Order)
{
   //do something else
}

N'Json.NET le soutien de ce type de fonctionnalité?

  • peut-être GetType()?
  • C'était ma première pensée trop. Cependant, le type est Newtonsoft.Json.Linq.JObject
  • JSON est un format non extensible et de ne pas garder les métadonnées sur la sérialisation. Vous DEVEZ savoir quel type vous êtes désérialiser.
  • comment puis-je différencier les différents objets? Lorsqu'un client envoie quelque chose à mon serveur, je dois être en mesure de détecter ce que c'est
  • Comment le client envoie des données sur votre serveur? Vous devez avoir un protocole pour déterminer ce que le client a envoyé.
  • Si GetType() renvoie JObject la valeur de la clé de tout simplement un autre objet json. Vous devez répéter en elle et de lire les clés suivantes.

InformationsquelleAutor Maeh | 2014-01-20