JSON需先parse再遍历生成插入,禁用document.write;用textContent防XSS,校验数组存在性避免map报错,序号对齐靠手动拼接或ol的start属性。

JSON数据直接写在HTML里怎么转成
?
不推荐把JSON硬编码进HTML,但若只是简单配置或调试,可以放在<script type="application/json"></script>里读取。关键点是:必须先JSON.parse(),再遍历生成,最后插入——浏览器不会自动解析JSON字符串为DOM。
- 确保JSON字符串合法(用双引号、无尾逗号),否则
JSON.parse()会抛SyntaxError: Unexpected token - 不要用
document.write(),它会清空整个页面;改用innerHTML或appendChild() - 如果JSON是对象数组(如
[{"name":"A"},{"name":"B"}]),遍历时注意用item.name而不是item[0]
用JavaScript动态渲染时,ol的start属性怎么和JSON序号对齐?
JSON本身不带序号,ol的start只控制起始数字,不影响内容。真正要对齐的是渲染逻辑——比如你想让第1个JSON项显示“2. 内容”,就得手动拼接序号,或者设再按顺序渲染。
-
start属性只影响视觉编号,不改变DOM结构;会显示“5. a”- a
- 如果JSON里有
id或index字段,优先用它生成编号,避免依赖数组下标(比如删掉中间项后序号错乱) - 别在循环里反复设置
ol.start = i + 1,它只生效一次,且不是为每个li单独设的
遇到Cannot read property 'map' of undefined怎么办?
这是最常见的报错,说明你试图对undefined调用map(),根源几乎都是JSON没成功解析,或解析后字段名写错了。比如服务器返回{"data": [...]},你却直接json.map(...),而没取json.data。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
- 加一层防御:用
Array.isArray(jsonData) ? jsonData : (jsonData?.items || [])兜底 - 用
console.log(typeof jsonData, jsonData)确认是不是字符串(需parse)还是已解析对象 - Chrome开发者工具里右键JSON响应 → “Store as global variable”,再在Console里试
temp1.data.map(...)快速验证路径
要不要用模板字符串拼接HTML?
小数据量可以,但要注意XSS风险——如果JSON里有用户输入内容(比如{"title": "<script>alert(1)</script>"}),直接innerHTML = `会执行脚本。安全做法是用textContent或手动转义。
- 最简防御:
document.createElement('li').textContent = item.title,再appendChild到ol - 如果坚持用模板字符串,至少过滤
>&:用item.title.replace(/[&/]/g, c => ({'':'>','&':'&','/':'/'})[c]) - 现代项目建议用
lit-html或React等框架,它们默认转义插值内容
JSON数组结构不统一、嵌套层级深、含HTML标签、服务端分页返回——这些都会让ol渲染变复杂,得先规范化数据再渲染,别指望一行map解决所有问题。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










