ENH:
#### Is your feature request related to a problem?

I use pandas to query a database, do some manipulations on the dataframe, then return the result to as a json on a flask api. There are some null values in the dataframe, which makes the to_json() method return a json which can only be interpreted as a string by javascript on the receiving end. This took me quite  a while to figure out this was the reason. I replaced the null values with empty strings and then it was received as json javascript array on the receiving end of the API instead of a json string. 

#### Describe the solution you'd like

DataFrame.to_json should be able to handle null values or offer a replacement for null such as the fillna method

#### API breaking implications

shouldnt affect api if its an additional feature of to_json?


#### Additional context

Flask/pandas 'working' code snipit, notice the fillna, it returns in browser console as:
```
{data: Array(22), status: 200, statusText: 'OK', headers: {…}, config: {…}, …}
```
```python

@cache.memoize(timeout=120)
def get():
   
# this query returns null values for some columns , as expected
 query = text(""" 
                select
                      *
                from mytable
                    join mytable2 on x=y
                    join mytable3 on x=y
                where u=i
            """)
 
    df= pd.read_sql(query, db.get_engine(app, 'database'), params=params)

    sequence = pd.pivot_table(df, index=indexcolumns, columns='z',
                              values='y', aggfunc=lambda x: ''.join(x))


    sequence = pd.DataFrame(sequence.to_records()).fillna(value='')

    return {'items': sequence.to_dict(orient='records') } #
```

without the .fillna(value='') it returns  as:
```
{data: '{\n  "x": [\n    {\n      "redacted",\n      "redacted": "redacted...redacted"\n    }\n  ]\n}\n', status: 200, statusText: 'OK', headers: {…}, config: {…}, …}
```
