Package json returns an error if it hits NaN or Inf, but easyjson generates invalid JSON:
main.go:
package main
import (
"fmt"
"math"
"github.com/mailru/easyjson"
)
type T struct {
F float64
}
func main() {
t := T{F: math.NaN()}
b, err := easyjson.Marshal(t)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b))
if err := easyjson.Unmarshal(b, &t); err != nil {
fmt.Println(err)
return
}
fmt.Println(t)
}
Shell:
$ easyjson -pkg -all
$ go build -o main && ./main
{"F":NaN}
parse error: syntax error near offset 5 of '{"F":NaN}'
Package json returns an error if it hits NaN or Inf, but easyjson generates invalid JSON:
main.go:
Shell: