updates.message
- это строка, а не объект JavaScript.Вы можете сказать по кавычкам вокруг всего атрибута.Строки JavaScript не имеют свойства student
, поэтому вы получаете undefined
.Вы можете проанализировать часть JSON из строки с помощью регулярных выражений, а затем использовать JSON.parse()
, чтобы получить объект JSON.Однако в вашем примере идентификатор студента также находится в updates.references[0].id
.
Чтобы получить идентификатор студента, выполните следующие действия:
<% alert(updates.references[0].id) %>
edit: действительно хотите получить идентификатор из сообщения, вам нужно как-то разобрать его.Если формат сообщения всегда будет одинаковым, вы можете попробовать регулярное выражение или разбиение строки, чтобы получить часть, содержащую идентификатор.
var id_part = json.updates.message.split(" ")[0];
//parse out just the ID number in a group
var re = /\[\[[^:]+:(\d+)\]\]/;
var matches = re.exec(id_part);
var id = matches[1];
Чтобы затем получить соответствующие данные из части references
,вам нужно перебирать, пока не найдете один с id
из сообщения.Это будет работать.
//Ghetto old for loop for browser compatibility
for (var i = 0; i < updates.references.length; i++) {
if (updates.references[i].id == id) {
//We have found the reference we want.
//Do stuff with that reference.
break;
}
}