Показать сообщение отдельно
  #1 (permalink)  
Старый 22.04.2016, 17:58
Интересующийся
Отправить личное сообщение для max_fruit Посмотреть профиль Найти все сообщения от max_fruit
 
Регистрация: 08.04.2016
Сообщений: 10

Объединение разных объектов JSON
Всем привет! Сразу принесу извинения за "многобукаф".
Есть JSON, который выглядит следующим образом:
response: {
    items: [
    {from_id: 111111,
    message: 'Hello world'},
    {from_id: 111111,
    message: 'Hello world'},
    {from_id: 111112,
    message: 'Lorem ipsum'},
    ],
    profiles:[
    {id: 111111,
    first_name: 'Иван'},
    {id: 111112,
    first_name: 'Степан'}
    ]
}


Моя задача заключается в том, чтобы объединить данные из разных объектов, а именно:
first_name из profiles объединить с message из items. И объединить их таким образом, чтобы они действительно соответствовали друг другу.
Как я пробовал это сделать:
Не буду расписывать весь код, дабы не перегружать и без того объемный текст, перейду к сути:
var items_message = data.response.items.length; 
var profiles_count = data.response.profiles.length;

for (var i=0; i<profiles_count; i++) {
  for (var j=0; j<items_message; j++)
{
if(data.respone.profiles[i].id !== data.response.items[j].from_id)continue;
var profilesStr += data.response.profiles[i].first_name + ' ' + 'Написал:' + ' ' + data.response.items[j].text;
document.getElementById('example').innerHTML = profilesStr;
 }; 
};

Такая конфигурация работает, но криво, т.е. и имена и посты вставляются в html, но не соответствуя друг другу. Плюс, если пользователь оставил несколько постов, то все они также вставляются в html.
Как решить данную задачу?
В итоге должно получаться, например:
'Иван написал: Hello world'

Последний раз редактировалось max_fruit, 23.04.2016 в 17:36.
Ответить с цитированием