title: C#/Json.Net Exceptions slowing down parsing
body: <p>I use Newtonsoft.Json to parse a json string. </p>
  
  <p>The data i`m parsing contains a lot of entrys which a huge load of 
  attributes several of them are optional. </p>
  
  <p>The Code for the parsing looks like this: </p>
  
  <pre><code>public bool Parse(string JSONString)
      {
          JObject o;
  
          try
          {
              jResponse = JObject.Parse(JSONString);
          }
          catch (JsonReaderException)
          {
              return false;
          }
  
  
          foreach (JObject jResult in jResponse[ParserConstants.ResultsTag])
          {
  
              MyObject myObject = new MyObject();
  
              try
              {
                  myObject.Title = (string)jResult[ParserConstants.TitleTag];
              }
              catch
              {
                  myObject.Title = String.Empty;
              }
  
              // This goes on for like 15 other elements
              // Some have a continue in catch, thats when the attribute is mandatory
              // Some have a deeper Structure like jResult[Tag1][Tag2][0][Tag3]
  
              Results.Add(c);
          }
          return (Results != null &amp;&amp; Results.Count &gt; 0);
      }
  </code></pre>
  
  <p>All of this works fine but the parsing is very slow because a lot of exceptions coming up on fields that have no value. ( Thats what i guess ) There like 1200 Exceptions when parsing all the data. </p>
  
  <p>The Exceptions are the following: </p>
  
  <p><strong>A first chance exception of type 'System.InvalidOperationException' occurred in Newtonsoft.Json.DLL</strong></p>
  
  <p>I tryed something like this instead of the try catch: </p>
  
  <pre><code>if( jResult[TitleTag] != null &amp;&amp; jResult[TitleTag].HasValues ){
      myObject.Title = (string) jResult[TitleTag];
  } else {
      myObject.Title = String.Empty;
  }
  </code></pre>
  
  <p>Unfortunaly it didnt worked out and the Data couldnt be parsed properly. </p>
  
  <p>Could somebody help me out with an alternative to the try-catch approach avoiding the exceptions? </p>
  
  <p>I´d be glad! </p>