我目前正在尝试使用 JavaScript 解析 JSON。我的问题是我希望输出看起来像这样:
<li>AppName1</li>
<li>AppName2</li>
<!-- and so on... -->
但是它不起作用,我不知道如何实现它。这是从 JSON 响应反序列化的对象:
{
"data": [{
"AppId": 1,
"AppName": "AppName1",
"AppSize": "2.1"
}, {
"AppId": 2,
"AppName": "AppName2",
"AppSize": ""
}]
}
这是我的 .js 文件:
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
var myObj = JSON.parse(this.responseText);
document.getElementById("test").innerHTML = myObj.AppName;
}
};
xmlhttp.open("GET", "json.json", true);
xmlhttp.send();
这是在我的 HTML 文件中
<p id="test"></p>
任何帮助将不胜感激,因为我似乎真的一点也看不懂。非常感谢!
最佳答案
首先注意你只能有li
元素作为 <ul>
的子元素或 <ol>
, 所以 p
需要更改元素。
AppName
属性是 data
中对象的一部分,因此您需要循环遍历它们:
myObj.data.forEach(function(o) {
document.getElementById("test").innerHTML += '<li>' + o.AppName + '</li>';
}
或者通过索引单独访问它们:
document.getElementById("test").innerHTML = '<li>' + myObj.data[0].AppName + '</li>'; // first item only
var myObj = {
"data": [{
"AppId": 3,
"AppName": "AnimojiStudio",
"AppSlug": "animojistudio",
"AppIcon": "https:\/\/img.lmdinteractive.pro\/icons\/animojistudio.png",
"AppUrl": "https:\/\/ipa.lmdinteractive.pro\/ipa\/appstore\/animojistudio.ipa",
"AppVersion": "1.2.2",
"AppSize": "2.1"
}, {
"AppId": 2,
"AppName": "Cute Cut Pro",
"AppSlug": "cute-cut-pro",
"AppIcon": "http:\/\/is2.mzstatic.com\/image\/thumb\/Purple118\/v4\/03\/70\/69\/03706968-2399-a1d8-e7c4-12897394ead9\/source\/512x512bb.jpg",
"AppUrl": "https:\/\/ipa.lmdinteractive.pro\/ipa\/appstore\/cutecutpro.ipa",
"AppVersion": "",
"AppSize": ""
}]
}
document.getElementById("test").innerHTML = '<li>' + myObj.data[0].AppName + '</li>';
<ul id="test"><li>
关于javascript - 用 JS 解析 JSON foreach,显示 HTML 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54709430/