如何从JSON正确反序列化包含顶级数组的RabbitMQ消息

I try to do it this way:

        case message := <-Rmq.Messages:
            go func() {
                log.Printf("Process message: %s", message.MessageId)

                rmqMessages := make([]RmqMessage, 100)
                err := json.Unmarshal(message.Body, &rmqMessages)
                if err != nil {
                    log.Fatalf("Error decoding %s: %v", message.Body, err)
                }

                var (
                    pushResult FcmResponse
                    rmqMessage RmqMessage
                )
                for _, rmqMessage = range rmqMessages {

It works some iterations, than failed with Error decoding : unexpected end of JSON input and message.Body == nil. But everything works fine, if JSON is not a list of objects ([{...}, {...}, ...] but just a single object {...}

I've tried

    RmqMessages struct {
        Messages []RmqMessage
    }
    rmqMessages := RmqMessages{}
    err := json.Unmarshal(message.Body, &rmqMessages.Messages)

with same result

What am i doing wrong?

The error was in acking the message in the loop iterating over deserialized array