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?