diff --git a/response/response.go b/response/response.go index 27ac9be..7670eed 100644 --- a/response/response.go +++ b/response/response.go @@ -93,9 +93,14 @@ func Send(ctx *gin.Context, code any, httpCode int, data any, responseOption *de ctx.Set(responseConfig.ResponseDataField, responseData) responseException := exception.New(code, responseData) responseContentType := getResponseDataType(responseOption.ContentType) - responseInstance, _ := wrapper.NewJson(serialize.JSON.MarshalForStringIgnoreError(responseException.Data()), &wrapper.Option{XmlName: responseOption.XmlName}) - finalResponseData, _ := responseInstance.Marshal(responseContentType) - ctx.Data(http.StatusOK, responseOption.ContentType, finalResponseData) + responseStr := serialize.JSON.MarshalForStringIgnoreError(responseException.Data()) + if responseInstance, err := wrapper.NewJson(responseStr, &wrapper.Option{XmlName: responseOption.XmlName}); nil != err { + // 接口处理成功, 数据序列化出现异常 + panic(err.Error()) // 直接panic, 交给gin处理 + } else { + finalResponseData, _ := responseInstance.Marshal(responseContentType) + ctx.Data(http.StatusOK, responseOption.ContentType, finalResponseData) + } } // getResponseDataType 获取相应数据类型