title: Bug in JsonConvert.DeserializeObject<DataSet>
body: <p>A strange bug had me beating my head.  To minimize traffic over the wire field names are mapped and deflated then inflated on the other end. If the field name is 'h' and the data is a datetime, the converter will crash with: </p>
  
  <p>Newtonsoft.Json.JsonSerializationException
  {"Error converting value 9/29/2017 10:06:00 AM to type 'System.Double'. Path 'dSTD[0].h', line 1, position 293."} with an inner exception of Invalid cast from 'DateTime' to 'Double'. </p>
  
  <p>In the below c# sample, the first set of data (jsonDtA) crashes the converter, the second (jsonDtB) does not.</p>
  
  <pre><code>string jsonDtA = "{'dSTD':[{'v':'7ac36696-9977-4bf1-b211-1be2a01da04d','av':820210,'l':'72a9f721-86e0-4070-9cd9-dfa9d3c4efdd','ab':726943,'N':1,'A':'Y','B':'N','G':'N','E':'N','D':'N','K':0.0000,'O':1,'L':1.25,'H':1.25,'ac':'ProcessTransaction','ad':5,'ae':'2017-09-29T10:06:00','af':5,'h':'2017-09-29T10:06:00'}]}";
  string jsonDtB = "{'dSTD':[{'v':'7ac36696-9977-4bf1-b211-1be2a01da04d','av':820210,'l':'72a9f721-86e0-4070-9cd9-dfa9d3c4efdd','ab':726943,'N':1,'A':'Y','B':'N','G':'N','E':'N','D':'N','K':0.0000,'O':1,'L':1.25,'H':1.25,'ac':'ProcessTransaction','ad':5,'ae':'2017-09-29T10:06:00','af':5,'hb':'2017-09-29T10:06:00'}]}";
  
  DataSet dsA = JsonConvert.DeserializeObject&lt;DataSet&gt;(jsonDtA); 
  DataSet dsB = JsonConvert.DeserializeObject&lt;DataSet&gt;(jsonDtB);
  </code></pre>
  
  <p>The ONLY difference is the name of the last datafield in the json set, 'h' vs. 'hb'</p>
  
  <p>Of course my "fix" is to just not use 'h' in my deflation map...  </p>
  
  <p>The question is, why does this happen, and is it a bug?</p>
  
  <p>I'm using Newtonsoft.Json v10.0.3</p>