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))