diff --git a/agent/middleware/operation.go b/agent/middleware/operation.go index cb47a701e64c..6bae99dc4985 100644 --- a/agent/middleware/operation.go +++ b/agent/middleware/operation.go @@ -75,7 +75,9 @@ func OperationResolveMeta() gin.HandlerFunc { if strings.Contains(c.Request.Header.Get("Content-Type"), "multipart/form-data") { bodyMap, _ = parseMultipart(body, c.Request.Header.Get("Content-Type")) } else { - _ = json.Unmarshal(body, &bodyMap) + decoder := json.NewDecoder(bytes.NewReader(body)) + decoder.UseNumber() + _ = decoder.Decode(&bodyMap) } for _, key := range meta.BodyKeys { if value, ok := bodyMap[key]; ok { diff --git a/core/middleware/operation.go b/core/middleware/operation.go index 1b372f793927..f7b36d58279e 100644 --- a/core/middleware/operation.go +++ b/core/middleware/operation.go @@ -78,7 +78,9 @@ func OperationLog() gin.HandlerFunc { if strings.Contains(c.Request.Header.Get("Content-Type"), "multipart/form-data") { bodyMap, _ = parseMultipart(body, c.Request.Header.Get("Content-Type")) } else { - _ = json.Unmarshal(body, &bodyMap) + decoder := json.NewDecoder(bytes.NewReader(body)) + decoder.UseNumber() + _ = decoder.Decode(&bodyMap) } for _, key := range operationDic.BodyKeys { if _, ok := bodyMap[key]; ok {