You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS如何遍历JSON结构中的对象并将数据渲染到前端页面

你可以用Object.values()方法将外层对象的所有属性值提取为数组,之后就可以复用你之前的数组遍历逻辑,几乎不需要调整原有渲染代码。

修改后的完整代码如下:

fetch("/portfolio/portfolio.json")
.then(response => {return response.json()})
.then(data => {
    // 把外层对象的所有项目配置提取为数组,结构和你之前的portfolio数组完全一致
    const projectList = Object.values(data)
    for (let i = 0; i < projectList.length; i++) {
        const project = projectList[i]
        if (project.status == true) {
            document.getElementById("portfolio").innerHTML += `<div class="card-project"><div class="thumbnail"><a href="/portfolio/${project.homepage}"><img src="/portfolio/thumbnails/${project.thumbnail}"></a></div><h6 class="tag">${project.tag}</h6><h6 class="title"><a href="/portfolio/${project.homepage}">${project.title}</a></h6></div>`
        }
    }
})

如果你后续需要用到外层的键名(比如示例中的dezui),可以改用Object.entries()同时获取键和值:

const projectEntries = Object.entries(data)
for (let i = 0; i < projectEntries.length; i++) {
    // key为外层键名,project为对应项目配置对象
    const [key, project] = projectEntries[i]
    // 后续渲染逻辑和上面保持一致即可
}

注:你原有代码中循环生成的DOM元素使用了重复的id属性,id在单页面中必须唯一,上面代码已经把重复id调整为class属性,避免样式和选择器出现异常。

内容的提问来源于stack exchange,提问作者dezuhan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 03:06:03