updates.message
是一个字符串,而不是 JavaScript 对象。您可以通过整个属性周围的引号来判断。JavaScript 字符串没有student
属性,所以你得到undefined
. 您可以使用正则表达式从字符串中解析出 JSON 部分,然后用于JSON.parse()
获取 JSON 对象。但是,学生证也在updates.references[0].id
您的示例中。
要获取学生证,请执行以下操作:
<% alert(updates.references[0].id) %>
编辑:如果您真的想从消息中获取 id,则需要以某种方式解析它。如果消息格式始终相同,您可以尝试使用正则表达式或字符串拆分来获取包含 id 的部分。
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;
}
}