使用JavaScript读取嵌套JSON
我正在尝试使用JavaScript读取JSON文件的嵌套内容 以下是我的JavaScript:使用JavaScript读取嵌套JSON,javascript,json,Javascript,Json,我正在尝试使用JavaScript读取JSON文件的嵌套内容 以下是我的JavaScript: <script> var obj, xmlhttp, myObj, x, txt = ""; var request = new XMLHttpRequest(); request.open('GET', 'https://private-c01be-moneyadviceservice.apiary-mock.com/locale/categories.json'); request.s
<script>
var obj, xmlhttp, myObj, x, txt = "";
var request = new XMLHttpRequest();
request.open('GET', 'https://private-c01be-moneyadviceservice.apiary-mock.com/locale/categories.json');
request.setRequestHeader("Content-type", "application/json");
request.onreadystatechange = function () {
if (this.readyState === 4) {
console.log('Status:', this.status);
console.log('Headers:', this.getAllResponseHeaders());
console.log('Body:', this.responseText);
myObj = JSON.parse(this.responseText);
for (x in myObj) {
txt += "<h2>" + myObj[x].title + "</h2><p>" + myObj[x].description + "</p><br/>";
txt += "<h3>" + myObj[x].contents.title + "</h3><p>" + myObj[x].contents.description + "</p><br/>";
}
document.getElementById("MAS").innerHTML = txt;
}
};
request.send();
</script>
嵌套的JSON显示为“未定义”。如何访问嵌套数据
我已经阅读了无数关于这个主题的帖子,但没有一篇在这个例子中起到真正的作用您也需要循环查看
内容,因为它们是如下所示的数组:
for (x in myObj) {
txt += "<h2>" + myObj[x].title + "</h2><p>" + myObj[x].description + "</p><br/>";
for(y in myObj[x].contents){
txt += "<h3>" + myObj[x].contents[y].title + "</h3><p>" + myObj[x].contents[y].description + "</p><br/>";
}
}
for(myObj中的x){
txt+=“”+myObj[x]。标题+”“+myObj[x]。说明+”
”;
对于(myObj[x].目录中的y){
txt+=“”+myObj[x]。内容[y]。标题+“”+myObj[x]。内容[y]。说明+“
”;
}
}
这是一个。您还需要循环查看内容,因为它们是如下所示的数组:
for (x in myObj) {
txt += "<h2>" + myObj[x].title + "</h2><p>" + myObj[x].description + "</p><br/>";
for(y in myObj[x].contents){
txt += "<h3>" + myObj[x].contents[y].title + "</h3><p>" + myObj[x].contents[y].description + "</p><br/>";
}
}
for(myObj中的x){
txt+=“”+myObj[x]。标题+”“+myObj[x]。说明+”
”;
对于(myObj[x].目录中的y){
txt+=“”+myObj[x]。内容[y]。标题+“”+myObj[x]。内容[y]。说明+“
”;
}
}
这是一个。您无法访问myObj[x].contents.title,因为contents
是一个数组。需要迭代myObj[x].contents
以获取其属性。您无法访问myObj[x].contents.title,因为contents
是一个数组。需要迭代myObj[x]。内容
以获取其属性。内容是一个对象数组。您需要循环使用它并获得myObj[x].contents[y].title,例如。@Christopher我也注意到了这一点。您应该将此作为答案发布。@LuisEstevez如果您愿意,可以继续。我在打电话,所以有点麻烦。:)内容是一个对象数组。您需要循环使用它并获得myObj[x].contents[y].title,例如。@Christopher我也注意到了这一点。您应该将此作为答案发布。@LuisEstevez如果您愿意,可以继续。我在打电话,所以有点麻烦。:)我猜OP想让第三行留在外环,只是说‘我猜OP想让第三行留在外环,只是说’