From 8c7e3825595def5d1cd8f6380c0f5f3d6ce00408 Mon Sep 17 00:00:00 2001 From: ssongliu Date: Mon, 16 Mar 2026 17:04:18 +0800 Subject: [PATCH] fix(middleware): preserve numeric format in operation logs (#12173) --- agent/middleware/operation.go | 4 +++- core/middleware/operation.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) 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 {