Добрый день.
Вот есть такой кусок кода:
....
type Device struct {
Id int64
Users map[string]int
}
....
device := new(Device)
device.Users = make(map[string]int
....
for {
select {
case egts := <-r.chd:
buffer, err = r.d_controller.GetCacheById(egts.ID, dbname)
// !!!!! device.Users = make(map[string]int) !!!!//
err = json.Unmarshal(buffer, &device)
...
}
}
...
в buffer приходят строки вида:
{"Id":"36","u":{"1":3,"5":0,"8":3,"9":3}}
{"Id":"6", "u":{"1":3,"5":0}}
.....
так вот, если расскомментарить строку // !!!!! все нормально работает, но если без нее то:
в момент получения строки {"Id":"6", "u":{"1":3,"5":0}} если до нее была строка {"Id":"36","u":{"1":3,"5":0,"8":3,"9":3}} в device.Users я получаю map[1:3 9:3 8:3 5:0] вместо map[1:3 5:0].
Вопрос это бага json или надо обязательно объявлять map до json.Unmarshal?
go version go1.5.1 linux/amd64
Спасибо.