title: Determining Object Type from JSON
body: <p>I have an event that gives me a JSON string:</p>
  
  <pre><code>...
  public delegate void DataReceivedHandler(string jsonString);
  ...
  public event DataReceivedHandler OnDataReceived = null;
  ...
  if(OnDataReceived != null)
  {
      OnDataReceived(jsonString);
  }
  ...
  </code></pre>
  
  <p>That JSON string could be one of 3 different complex objects: LogOnMessage, LogOffMessage, or DataRequest. Each message has a unique set of fields and properties. </p>
  
  <p><strong>How can I determine which object type the JSON string resolves to?</strong> </p>
  
  <p>I know I can write a method that iterates through the JProperty.Name of the JObject and find a match by iterating through my collection of objects and their meta-data, but my gut tells me this is a common challenge to be solved so it must be built in to Newtonsoft JSON .NET somewhere that I simply am overlooking or not understanding. It's probably better and faster than my solution would be too...</p>