2012-11-01 46 views
5

我有一个函数,我得到一些JSON,然后提取第一个元素,基于对象文本中的一些信息。Javascript对象字面量。 object [i] .variable

我的问题是:

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"}] 

(有更多的对象)。并且类似于planta变量中的任何其他元素

我意识到这是一个新手问题,但我是JavaScript的新手,并且我整天都对着屏幕猛撞我的头。 任何帮助将非常感激!

+0

'return data [0] [string]'使用'[]'而不是'''。 –

回答

6

你应该使用下标符号的表达查找对象属性:

plantaVariables[i] = parseInt(data[0][capitaliseFirstLetter(i)]); 
+0

谢谢!使我的一天! – Cobradelaplaya

1

记住,对象可以使用[]引用,就像阵列。

var string = capitaliseFirstLetter(i); 
plantaVariables[i] = parseInt(data[0][string]); 
+0

谢谢!优秀 – Cobradelaplaya

+0

不客气:-) –