[英]Javascript getting object properties
我想最后創建一個google.Visualization.DataTable
,以顯示一個圖形。 現在,我有以下問題:
這是我的代碼,用於從JSON-string
獲取Object
並列出屬性:
var jsonData = <?php echo "'". $jsonTable. "'"; ?>;
var parsed = JSON.parse(jsonData);
var sensors = [];
for (var x in parsed){
sensors.push(parsed[x]);
}
var text ="";
for (var sensor in sensors){
if (sensors.hasOwnProperty(sensor)){
var measures = sensors[sensor];
text += ('\r\n' + sensor);
for (var time in measures){
if(measures.hasOwnProperty(time)){
text += ('\r\n' + time + " = " + measures[time]);
}
}
}
}
$(document.getElementById('chart_div')).text(text);
我的jsonData
看起來像這樣:
jsonData = '{"sensor1":
{"Date(2016,1,08,10,30,03)":19.187,
"Date(2016,1,08,10,00,02)":18.937[,...]},
"sensor2":
{"Date(2016,1,08,10,30,04)":18.687,
"Date(2016,1,08,10,00,03)":18.437[,...]}
[,...]}'
我的問題是我沒有在循環中得到值“ sensor1”,“ sensor2”等。 text += ('\\r\\n' + sensor);
只返回sensors-object
sensor-object
的index
。
如何獲取傳感器名稱而不是索引?
如何獲取傳感器名稱而不是索引?
您需要在第一個循環中使用屬性名稱進行操作。
目前,您正在獲取屬性名稱( sensor1
),使用它來獲取值( {"Date...
),然后將該值放入數組中,同時丟棄該屬性名稱。
最簡單的選擇是完全擺脫第一個循環,並在第二個循環中使用parsed
而不是sensors
來工作。
一種簡單的解決方法
刪除無var sensors = [];
查找sensors
並替換為parsed
。
代碼 :
for (var sensor in parsed){
if (parsed.hasOwnProperty(sensor)){
var measures = parsed[sensor];
text += ('\r\n' + sensor);
console.log(parsed);
for (var time in measures){
if(measures.hasOwnProperty(time)){
text += ('\r\n' + time + " = " + measures[time]);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.