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;
}
}
請看看我的答案。我更新了它以更全面地回答你的問題。 – jergason