2012-11-01 50 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

不客氣:-) –