diff --git a/qq_message/cq_message.go b/qq_message/cq_message.go index c7c5a99..41e35b3 100644 --- a/qq_message/cq_message.go +++ b/qq_message/cq_message.go @@ -54,16 +54,17 @@ func CreateMessage(messageType string) (QQMessage, error) { func ParseStructMessages(msgData any) []QQMessage { log.Println("解析消息数组:", msgData) switch msgData := msgData.(type) { - case []map[any]any: + case []interface{}: msgArray := msgData messages := make([]QQMessage, 0, len(msgArray)) for _, raw := range msgArray { - msg, err := CreateMessage(raw["type"].(string)) + rawMap := raw.(map[string]any) + msg, err := CreateMessage(rawMap["type"].(string)) if err != nil { log.Println("创建消息失败:", err) continue } - dataByte, _ := json.Marshal(raw["data"]) + dataByte, _ := json.Marshal(rawMap["data"]) // 使用类型断言获取具体类型的Data字段 if v, ok := msg.(interface{ SetData(json.RawMessage) error }); ok { if err := v.SetData(dataByte); err != nil { @@ -72,7 +73,7 @@ func ParseStructMessages(msgData any) []QQMessage { continue } } else { - log.Printf("消息类型 %s 未实现 SetData 方法\n", raw["type"]) + log.Printf("消息类型 %s 未实现 SetData 方法\n", rawMap["type"]) continue }