由于保存數(shù)據(jù)時(shí)用json.Marshal(string)處理后保存,取出后需要進(jìn)行json.Unmarshal([]byte,&str)
var message MsgPacket
for _, value := range chats {
err = json.Unmarshal([]byte(value.Msg),&message)
if err != nil {
logs.Error("GetUsersPrivateChats","err = ",err)
}
message.Data["send_time"] = value.SendTime
msg = append(msg,message)
}
因?yàn)橛玫搅?amp;message所以數(shù)據(jù)都保存在了地址里面,每遍歷一次更新一次內(nèi)容到地址,
所以最后的切片內(nèi)容都一樣(因?yàn)槊恳粋€(gè)切片的地址都是一樣的)
正確寫(xiě)法如下
for _, value := range chats {
var message MsgPacket
err = json.Unmarshal([]byte(value.Msg),&message)
if err != nil {
logs.Error("GetUsersPrivateChats","err = ",err)
}
message.Data["send_time"] = value.SendTime
msg = append(msg,message)
}