5

我有一个函数,我可以在其中获取一些 JSON,然后根据对象文字中的一些信息提取第一个元素。

我的问题是:

function foo(string){
return data[0].string;
}

这不起作用。什么是正确的语法?

完整的代码是:

 var plantaVariables = {
    humidity : 0,
    airTemp : 0,
    soilTemp : 0,
    soilMoisture: 0,
    light: 0
  };

  function capitaliseFirstLetter(string){
    return string.charAt(0).toUpperCase() + string.slice(1);
  }

  for (var i in plantaVariables) {
    $.ajax({
      url: "http://xxx/"+i.toLowerCase(),
      dataType:"json",
      async: false,
      success: function(data){
        var string = capitaliseFirstLetter(i);
        plantaVariables[i] = parseInt(data[0].capitaliseFirstLetter(i));
      }
      });
  };

我得到的 JSON 如下所示:

[{"PlantId":"1","DateTime":"2012-11-01 13:56:23","Humidity":"37.4"}]

(有更多对象)。与植物变量中的任何其他元素类似

我意识到这是一个新手问题,但我是 javascript 新手,我整天都在用头撞屏幕。任何帮助将不胜感激!

4

2 回答 2

6

您应该使用下标符号通过表达式查找对象属性:

plantaVariables[i] = parseInt(data[0][capitaliseFirstLetter(i)]);
于 2012-11-01T20:47:22.620 回答
1

请记住,可以使用 引用对象[],就像数组一样。

var string = capitaliseFirstLetter(i);
plantaVariables[i] = parseInt(data[0][string]);
于 2012-11-01T20:47:39.467 回答