我有一个函数,我得到一些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"}]
(有更多对象)。与plantaVariables
中的任何其他元素类似我意识到这是一个新手问题,但我是javascript的新手,我整天都在屏幕上撞了我的头。 非常感谢任何帮助!
答案 0 :(得分:6)
您应该使用下标表示法按表达式查找对象属性:
plantaVariables[i] = parseInt(data[0][capitaliseFirstLetter(i)]);
答案 1 :(得分:1)
请记住,可以使用[]
引用对象,就像数组一样。
var string = capitaliseFirstLetter(i);
plantaVariables[i] = parseInt(data[0][string]);