То есть у тебя сейчас приходит массив с объектами или массивами, то загрузка такая
var messages = {};
for(var i=0; i<json.length;i++)
messages[json[i].id]=json[i];
А теперь смотри как будет выглядеть обновление
for(var i=0; i<json.length;i++)
messages[json[i].id]=json[i];
Заметил разницу? Все очень просто.