From 1b7e105164422fbc6f6f00d79e7d6170a6c91a24 Mon Sep 17 00:00:00 2001 From: cjy Date: Mon, 2 Mar 2026 14:27:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E7=AB=9E=E5=93=81?= =?UTF-8?q?=E6=8A=A5=E5=91=8Ajson=E5=8F=8D=E5=BA=8F=E5=88=97=E5=8C=96?= =?UTF-8?q?=E6=9C=89=E7=AC=A6=E5=8F=B7=E5=AF=BC=E8=87=B4=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/service/cast/report.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkg/service/cast/report.go b/pkg/service/cast/report.go index 9add2518..9530ae3f 100644 --- a/pkg/service/cast/report.go +++ b/pkg/service/cast/report.go @@ -132,11 +132,16 @@ func CreateCompetitiveReportCore(ctx *gin.Context, req *cast.CreateCompetitiveRe // 解析 JSON 数据 var competitorReportData utils.CompetitorReportData zap.L().Info("reportData内容", zap.String("reportData", reportData)) - if err := json.Unmarshal([]byte(reportData), &competitorReportData); err != nil { - zap.L().Error("解析竞品报告数据失败", zap.String("reportData", reportData), zap.Error(err)) + + // 处理双重编码问题:替换中文引号为英文引号 + processedReportData := strings.ReplaceAll(reportData, "”", "\"") + processedReportData = strings.ReplaceAll(processedReportData, "“", "\"") + + if err := json.Unmarshal([]byte(processedReportData), &competitorReportData); err != nil { + zap.L().Error("解析竞品报告数据失败", zap.String("reportData", processedReportData), zap.Error(err)) // 尝试打印更详细的错误信息 zap.L().Error("详细错误", zap.Error(err)) - return nil, errors.New("竞品报告数据格式错误: " + err.Error()) + return nil, errors.New("竞品报告数据格式错误") } zap.L().Info("解析成功", zap.Any("competitorReportData", competitorReportData))