title: JObject.Parse vs JsonConvert.DeserializeObject
body: <p>What's the difference between JsonConvert.DeserializeObject and JObject.Parse?  As far as I can tell, both take a string and are in the Json.NET library.  What kind of situation would make one more convenient than the other, or is it mainly just preference?</p>
  
  <p>For reference, here's an example of me using both to do exactly the same thing - parse a Json string and return a list of one of the Json attributes.  </p>
  
  <pre><code>public ActionResult ReadJson()
  {
      string countiesJson = "{'Everything':[{'county_name':null,'description':null,'feat_class':'Civil','feature_id':'36865',"
                      +"'fips_class':'H1','fips_county_cd':'1','full_county_name':null,'link_title':null,'url':'http://www.alachuacounty.us/','name':'Alachua County'"+ ",'primary_latitude':'29.7','primary_longitude':'-82.33','state_abbreviation':'FL','state_name':'Florida'},"+
                      "{'county_name':null,'description':null,"+ "'feat_class':'Civil','feature_id':'36866','fips_class':'H1','fips_county_cd':'3','full_county_name':null,'link_title':null,'url':'http://www.bakercountyfl.org/','name':'Baker County','primary_latitude':'30.33','primary_longitude':'-82.29','state_abbreviation':'FL','state_name':'Florida'}]}";
  
      //Can use either JSONParseObject or JSONParseDynamic here
      List&lt;string&gt; counties = JSONParseObject(countiesJson);
      JSONParseDynamic(countiesJson);
      return View(counties);
  }
  
  public List&lt;string&gt; JSONParseObject(string jsonText)
  {
      JObject jResults = JObject.Parse(jsonText);
      List&lt;string&gt; counties = new List&lt;string&gt;();
      foreach (var county in jResults["Everything"])
      {
          counties.Add((string)county["name"]);
      }
      return counties;
  }
  
  public List&lt;string&gt; JSONParseDynamic(string jsonText)
  {
      dynamic jResults = JsonConvert.DeserializeObject(jsonText);
      List&lt;string&gt; counties = new List&lt;string&gt;();
      foreach(var county in jResults.Everything)
      {
          counties.Add((string)county.name);
      }
      return counties;
  }
  </code></pre>