Quellcode durchsuchen

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

Kyle Brandt vor 6 Jahren
Ursprung
Commit
e1b2d61ceb
1 geänderte Dateien mit 2 neuen und 1 gelöschten Zeilen
  1. 2 1
      pkg/components/null/float.go

+ 2 - 1
pkg/components/null/float.go

@@ -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