我想在最后创建一个google.Visualization.DataTable
来显示图表。到现在为止,我遇到了以下问题:
这是我从Object
获取JSON-string
并列出属性的代码:
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[,...]}
[,...]}'
我的问题是我没有得到价值&#34; sensor1&#34;,&#34; sensor2&#34;等等在循环中。 text += ('\r\n' + sensor);
仅返回index
中sensor-object
的{{1}}。
如何获取传感器名称而不是索引?
答案 0 :(得分:1)
如何获取传感器名称而不是索引?
您需要在第一个循环中使用属性名称执行某些操作。
目前您正在使用属性名称(sensor1
),使用它来获取值({"Date...
),然后将值放入数组中,同时丢弃属性名称。
最简单的选择是完全摆脱你的第一个循环,并在第二个循环中使用parsed
而不是sensors
。
答案 1 :(得分:1)
一个简单的解决方法
删除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]);
}
}
}