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

基于单片机Web服务器的JSON属性值显示异常问题排查

问题分析与解决方案

嘿,我一眼就瞅出问题所在啦!这是个典型的JavaScript对象属性访问语法错误,咱们一步步来解决:

错误根源

你在访问动态生成的对象属性时用错了语法!当属性名是变量的时候,不能用.点语法,得用[]方括号语法。

看你代码里的这行关键错误:

document.getElementById("result_text").value += ( property+" = "+obj.property+", " );

这里的obj.property会被JavaScript当成“查找obj里名为property的固定属性”,但你的对象里根本没有叫property的属性,只有property1、property256这类动态命名的属性,所以自然返回undefined了。

修正方案

把obj.property改成obj[property]就搞定!方括号语法会把变量property的实际值(比如循环到i=1时的"property1")作为属性名去对象里查找,这样就能正确拿到对应的值。

修正后的完整代码如下:

<head> 
  <title>JAVASCRIPT_TEST</title> 
  <meta charset="UTF-8"/> 
</head> 
<body> 
  <input type="text" id="result_text" size="150"> 
  <input type="button" onclick="test()" value="TEST"> 
  <script> 
    function test() { 
      document.getElementById("result_text").value = ""; 
      var obj = JSON.parse('{"property1":"1234","property256":"5678"}'); 
      for (var i=1; i<=256; i++) { 
        var property = "property"+i; 
        if (property in obj) { 
          // 核心修正:用方括号访问动态属性
          document.getElementById("result_text").value += ( property+" = "+obj[property]+", " ); 
        } 
      } 
    } 
  </script> 
</body>

效果验证

点击TEST按钮后,文本框会正确输出你期望的内容:property1 = 1234, property256 = 5678,

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:24:48