在innerHTML中显示JSON数组

时间:2016-12-09 07:37:13

标签: javascript json html5

所以我从另一个学生那里收到了以下数组,我的工作就是在HTML中显示它。

我已经按照此处以及其他网站上的示例进行了操作。这是我第一次尝试这样做。

无论如何,我已经调用了所需的值,但它们没有显示。我很感激能得到的任何帮助。

这是脚本块,我将附上一些HTML。目前,json位于关闭头标记之前。

 <script>

      var height = {"height" : "1.76m"};
      var weight = {"weight" : "65kg"};
      var bmi = {weight/(height*height)};
      var cholesterol = {"cholesterol" : "26mmol/d"};
      var glucose ={"glucose" : "100mg/dl"};
      var pressure = {"pressure" : "120/80"};
      var pulseRate = {"pulse rate" : "80bpm"};

      window.onload = function() {

        obj = JSON.parse(height, weight, bmi, cholesterol, glucose, pressure, pulseRate);

        document.getElementById("hgt").innerHTML = obj.height[1];
        document.getElementById("wgt").innerHTML = obj.weight[1];
        document.getElementById("bmi").innerHTML = obj.bmi[1];
        document.getElementById("chol").innerHTML = obj.cholesterol[1];
        document.getElementById("gluc").innerHTML = obj.glucose[1];
        document.getElementById("bp").innerHTML = obj.pressure[1];
        document.getElementById("rpr").innerHTML = obj.pulseRate[1];

      };

 </script>

      <div class="col-xs-2">
        <h3 class="heading">Today</h3>
        <img class="picture2" src="images/icon-height.png" />
      <div class="caption">
       <h2 id="hgt"></h2>
       <p>height</p>
      </div>

1 个答案:

答案 0 :(得分:0)

由于您的变量heightweight ...不必解析,因为它们是有效的JSON对象,您可以通过像这样分配obj来节省一些时间:

var obj = {
   height: "1.76",
   weight: "65kg",
   ...,
   bmi: //your calculation here!
};

document.getElementById("yourid").innerHTML = obj.weight;
...

由于JSON对象使用keyvalue对,因此您只需使用object.keyobject['key']即可访问这些值。

由于您尝试使用obj.weight[1]来尝试访问这些值,我猜测您正在尝试获取{ "weight" : "67kg" }中的第二个值。但由于这是一个有效的对象,weight是关键,"67kg"是值。因此,您试图在对象(obj.weight[1])上获取索引1处的值。为此,您的对象必须具有键1或者是数组。我希望你得到我试图向你解释的内容。

为了使其更加简单,您可以使用height.height代替无效obj.height[1],因为您的var height是一个带有密钥height的对象。但为了便于阅读,我建议使用我的代码段中的格式。