在下面的代码片段中,我从java Servlet接收一个JSON对象并访问该对象的属性。
JSON 对象:
{
"redirect": "/index.html",
"logout": "/_cloudshellProxy/_ah/logout?continue\u003d%2Findex.html",
"status": true,
"register": true,
"user": {
"email": "s@example.com",
"username": "Yevesky",
"college": {
"name": "Lafayette College",
"key": "aglzcHN0ZWFtMTlyFAsSB0NvbGxlZ2UYgICAgICAswgM"
},
"key": "aglzcHN0ZWFtMTlyEQsSBFVzZXIYgICAgICgxAgM"
}
}
以下是我如何处理来自 servlet 的对象。
fetch("/getUserInfo").then(response => response.json()).then(object =>
{
jsonObject = object;
console.log(jsonObject);
setUpUserPage(jsonObject);
loadClasses();
});
function setUpUserPage(json){
const jsonData = json;
var name = document.createElement("h3");
name.innerText = String(jsonData.username);
var uni = document.createElement("h6");
uni.innerText = String(jsonData.college.name); // Error occurs here
var classification = document.createElement("h6");
console.log(jsonData.classes);
if (jsonData?.isProf)
{
classification.innerText = "Professor";
}
else
{
classification.innerText = "Student";
}
var email = document.createElement("h6");
email.innerText = String(jsonData.email);
var spacer = document.createElement("BR");
//change nickname link
var changeNicknameP = document.createElement("p");
changeNicknameP.innerText = "Change your nickname: ";
var anchor = document.createElement("A");
var link = document.createTextNode("here");
anchor.setAttribute("href", "#");
anchor.appendChild(link);
changeNicknameP.appendChild(anchor);
}
问题是我不明白为什么我会得到一个“TypeError:无法读取未定义的属性'名称'”,如果对象有这样的属性?
它只是JavaScript还是我没有遵循一个过程。
我每次都会在控制台上打印JSON对象,以查看该属性是否确实存在。
白衣非少年
相关分类