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

佛罗里达景点网站JSON数据不显示,请求语法错误排查帮助

佛罗里达景点网站数据加载问题排查

问题概述

开发名为Florida Tempatations的佛罗里达景点展示网站时,尝试通过fetch API加载attractions.json中的景点数据并展示,但内容始终无法正常显示,控制台报SyntaxError错误。

错误原因分析

1. JSON文件语法错误

attractions.json中最后一个景点对象末尾多了一个逗号,JSON规范不允许对象或数组的最后一项后加尾逗号,这会导致解析失败。

2. JavaScript选择器与DOM操作错误

  • 错误使用document.querySelector('attractions'),页面中没有名为attractions的标签,应该选择id为attractions-container的div元素,正确写法是document.querySelector('#attractions-container')。
  • li元素不能直接作为div的子元素,需要先创建一个ul列表容器,再将li添加到ul中。

3. 数据遍历对象错误

JSON数据的景点数组嵌套在attractions字段下,应该遍历data.attractions而非直接遍历data。

修复步骤与代码

修复后的attractions.json

移除最后一个景点对象的尾逗号:

{ "attractions":[ 
  {
    "name": "Walt Disney World",    "location": "Orlando",    "category": "Theme Park"
  },
  {   
    "name": "Universal Studios Florida",    "location": "Orlando",    "category": "Theme Park"
  },
   {    "name": "Kennedy Space Center",    "location": "Cape Canaveral",    "category": "Science and Technology"
   },
  {"name": "South Beach",    "location": "Miami",    "category": "Beach"
  },
   {    "name": "Everglades National Park",    "location": "Homestead",    "category": "National Park"
   }
  ]
}

修复后的script.js

修正选择器、创建ul容器并正确遍历景点数组:

fetch('attractions.json')
  .then(response => response.json())
  .then(data => {
    const container = document.querySelector('#attractions-container');
    // 创建ul列表容器
    const list = document.createElement('ul');
    // 遍历attractions数组
    data.attractions.forEach(attraction => {
      const item = document.createElement('li');
      item.innerHTML = `<h2>${attraction.name}</h2>
        <p>Location: ${attraction.location}</p>
        <p>Category: ${attraction.category}</p>`;
      list.appendChild(item);
    });
    // 将ul添加到容器中
    container.appendChild(list);
  })
  .catch(error => {
    console.error('Error:', error);
  });

可选样式调整(style.css)

为了让景点列表更美观,可添加以下样式:

#attractions-container ul {
  list-style: none;
  padding: 20px;
}

#attractions-container li {
  background-color: rgba(255,255,255,0.8);
  margin: 15px auto;
  padding: 20px;
  border-radius: 8px;
  max-width: 600px;
  color: #333;
  text-align: left;
}

#attractions-container h2 {
  color: #e7902c;
  margin-bottom: 10px;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 01:30:30