title: Pandas to_json changing data type
body: <p>I noticed this behavior, not sure it's a bug.
  I create a dataframe with 2 integer columns and 1 float column</p>
  
  <pre><code>import pandas as pd
  df = pd.DataFrame([[1,2,0.2],[3,2,0.1]])
  df.info()
  
  
  &lt;class 'pandas.core.frame.DataFrame'&gt;
  Int64Index: 2 entries, 0 to 1
  Data columns (total 3 columns):
  0    2 non-null int64
  1    2 non-null int64
  2    2 non-null float64
  dtypes: float64(1), int64(2)
  </code></pre>
  
  <p>If I output that to Json, the dtype information is lost:</p>
  
  <pre><code>df.to_json(orient= 'records')
  
  '[{"0":1.0,"1":2.0,"2":0.2},{"0":3.0,"1":2.0,"2":0.1}]'
  </code></pre>
  
  <p>All data is converted to float. This is a problem if for example one column contains ns timestamps, because they are converted to exponential notation and the sub-second information is lost.</p>
  
  <p>I also filed the issue here: <a href="https://github.com/pydata/pandas/issues/7583" rel="noreferrer">https://github.com/pydata/pandas/issues/7583</a></p>
  
  <p>The result I was expecting is:</p>
  
  <pre><code>'[{"0":1,"1":2,"2":0.2},{"0":3,"1":2,"2":0.1}]'
  </code></pre>