Safe json data extraction.
Перед обращением к полям данных, пришедших от серверной ручки, нужно предвариетльно проверить наличие этих полей — в противном случае, код время от времени будет падать, а затем обрастать громоздкими условиями с проверкой всего на свете:
if (json.tv && Array.isArray(json.tv.events)) {
json.events.forEach(function (event) {