backend: null.Float NaN -> null for json marshal (#18284)

This commit is contained in:
Kyle Brandt
2019-08-06 12:28:48 -04:00
committed by GitHub
parent 54f3e873a4
commit e1b2d61ceb

View File

@@ -4,6 +4,7 @@ import (
"database/sql"
"encoding/json"
"fmt"
"math"
"reflect"
"strconv"
)
@@ -99,7 +100,7 @@ func (f *Float) UnmarshalText(text []byte) error {
// MarshalJSON implements json.Marshaler.
// It will encode null if this Float is null.
func (f Float) MarshalJSON() ([]byte, error) {
if !f.Valid {
if !f.Valid || math.IsNaN(f.Float64) {
return []byte(nullString), nil
}
return []byte(strconv.FormatFloat(f.Float64, 'f', -1, 64)), nil