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

操作嵌套JSON对象时遇JavaScript控制台语法错误,求排查

解决你的JSON解析与页面显示问题

嗨,我来帮你排查这个问题!你遇到的语法错误和页面只显示h2的问题,主要有两个核心原因,咱们一步步来解决:

1. 先搞定逻辑错误(页面不显示内容的关键)

你已经用JSON.parse()把JSON字符串解析成了对象myObj,但之后访问嵌套属性的时候,却错误地用了原始的字符串变量myJSON!字符串本身是没有LevelOne这类属性的,这就导致代码无法正确读取到你想要的内容。

另外,就算你用对了变量,直接把location对象赋值给innerHTML,页面也只会显示[object Object]——这是JS对对象的默认字符串表示,不是可读的内容。

2. 语法错误的可能原因

你说已经验证过JSON格式正确,那大概率是复制代码时带入了不可见的特殊字符(比如全角空格、非标准引号)。不过只要我们修正逻辑错误后,手动检查一下字符串的引号和空格,就能解决这个问题。

修复后的完整代码

<!DOCTYPE html>
<html>
<body>
<h2>Testing JSON .</h2>
<p id="demo"></p>
<script>
// 确保这里的字符串没有特殊字符,引号都是标准的半角引号
var myJSON = '{ "LevelOne": { "LevelTwo": { "location": { "campus": "SouthWest", "building": "Biggest", "floor": "1st", "room": "101" }, "quantity": "1", "section": "ABC", "task": "abc123456zyx" } } }';
var myObj = JSON.parse(myJSON);

// 方案1:提取具体属性,显示可读性强的文本
document.getElementById("demo").innerHTML = 
  "Campus: " + myObj.LevelOne.LevelTwo.location.campus + "<br>" +
  "Building: " + myObj.LevelOne.LevelTwo.location.building + "<br>" +
  "Floor: " + myObj.LevelOne.LevelTwo.location.floor + "<br>" +
  "Room: " + myObj.LevelOne.LevelTwo.location.room;

// 方案2:如果想直接展示格式化后的JSON结构,可以用这个
// document.getElementById("demo").innerHTML = "<pre>" + JSON.stringify(myObj.LevelOne.LevelTwo.location, null, 2) + "</pre>";
</script>
</body>
</html>

关键修复点总结

  • 替换变量:用解析后的myObj代替myJSON来访问嵌套属性。
  • 优化显示:要么提取具体字段拼接成可读文本,要么用JSON.stringify()+<pre>标签来展示格式化的JSON结构。
  • 检查字符:如果还是有语法错误,建议手动重新输入JSON字符串的引号和空格,避免不可见特殊字符干扰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:58:31