From 619fb6eaa72487eaa0295f1ad5a39cf3659dd110 Mon Sep 17 00:00:00 2001 From: buyuxiang <347586493@qq.com> Date: Fri, 11 Feb 2022 15:10:37 +0800 Subject: [PATCH] fix: json number convert rule Change-Id: I68a811b803631ef78b6b12fe548f98b676a10eb3 --- parser.go | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/parser.go b/parser.go index ce2a8fe3..692faf75 100644 --- a/parser.go +++ b/parser.go @@ -69,7 +69,8 @@ func (p *parser) parseData(raw interface{}, variablesMapping map[string]interfac case reflect.String: // json.Number if rawValue, ok := raw.(json.Number); ok { - return parseJSONNumber(rawValue) + // use the same rule as json.Unmarshal (float64, for JSON numbers) + return rawValue.Float64() } // other string value := rawValue.String() @@ -108,16 +109,6 @@ func (p *parser) parseData(raw interface{}, variablesMapping map[string]interfac } } -func parseJSONNumber(raw json.Number) (interface{}, error) { - if strings.Contains(raw.String(), ".") { - // float64 - return raw.Float64() - } else { - // int64 - return raw.Int64() - } -} - const ( regexVariable = `[a-zA-Z_]\w*` // variable name should start with a letter or underscore regexFunctionName = `[a-zA-Z_]\w*` // function name should start with a letter or underscore