|
@@ -1,9 +1,25 @@
|
|
|
package jsoniter
|
|
package jsoniter
|
|
|
|
|
|
|
|
-import "encoding/json"
|
|
|
|
|
|
|
+import (
|
|
|
|
|
+ "encoding/json"
|
|
|
|
|
+ "strconv"
|
|
|
|
|
+)
|
|
|
|
|
|
|
|
type Number string
|
|
type Number string
|
|
|
|
|
|
|
|
|
|
+// String returns the literal text of the number.
|
|
|
|
|
+func (n Number) String() string { return string(n) }
|
|
|
|
|
+
|
|
|
|
|
+// Float64 returns the number as a float64.
|
|
|
|
|
+func (n Number) Float64() (float64, error) {
|
|
|
|
|
+ return strconv.ParseFloat(string(n), 64)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Int64 returns the number as an int64.
|
|
|
|
|
+func (n Number) Int64() (int64, error) {
|
|
|
|
|
+ return strconv.ParseInt(string(n), 10, 64)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func CastJsonNumber(val interface{}) (string, bool) {
|
|
func CastJsonNumber(val interface{}) (string, bool) {
|
|
|
switch typedVal := val.(type) {
|
|
switch typedVal := val.(type) {
|
|
|
case json.Number:
|
|
case json.Number:
|