...
1
2
3
4
5 package gensupport
6
7 import (
8 "encoding/json"
9 "errors"
10 "fmt"
11 "math"
12 )
13
14
15
16
17
18
19
20
21
22
23 type JSONFloat64 float64
24
25 func (f *JSONFloat64) UnmarshalJSON(data []byte) error {
26 var ff float64
27 if err := json.Unmarshal(data, &ff); err == nil {
28 *f = JSONFloat64(ff)
29 return nil
30 }
31 var s string
32 if err := json.Unmarshal(data, &s); err == nil {
33 switch s {
34 case "NaN":
35 ff = math.NaN()
36 case "Infinity":
37 ff = math.Inf(1)
38 case "-Infinity":
39 ff = math.Inf(-1)
40 default:
41 return fmt.Errorf("google.golang.org/api/internal: bad float string %q", s)
42 }
43 *f = JSONFloat64(ff)
44 return nil
45 }
46 return errors.New("google.golang.org/api/internal: data not float or string")
47 }
48
View as plain text