Add empty string to test as well, as suggested by Dave.
diff --git a/encode_test.go b/encode_test.go index c077343..fe1c497 100644 --- a/encode_test.go +++ b/encode_test.go
@@ -187,6 +187,7 @@ uint(2), 2.0, 2.1, + "", ".1", ".2", ".a", @@ -222,8 +223,8 @@ last := 0 for i, k := range order { repr := fmt.Sprint(k) - if _, ok := k.(string); ok { - if _, err = strconv.ParseFloat(repr, 32); err == nil { + if s, ok := k.(string); ok { + if _, err = strconv.ParseFloat(repr, 32); s == "" || err == nil { repr = `"` + repr + `"` } }