【发布时间】:2019-07-28 16:01:14
【问题描述】:
我正在尝试制作一个嵌套 JSON 数据集的表格。我能够检索到一些值(“时间”、“湿度”、“温度”),但到目前为止未能成功访问嵌套对象(“FSR_1”...“FSR_3”)。
以下代码未返回错误,但 row[Object.keys(row)[i].resistance] 未返回数据集中的值:
d3.json("test.json", function(error, data){
var columns = Object.keys(data[0]);
var table = d3.select("body").append("table"),
thead = table.append("thead")
.attr("class", "thead");
tbody = table.append("tbody");
thead.append("tr").selectAll("th")
.data(columns)
.enter()
.append("th")
.text(function(d) { return d; })
.on("click", function(header, i) {
tbody.selectAll("tr").sort(function(a, b) {
return d3.descending(a[header], b[header]);
});
});
var rows = tbody.selectAll("tr.row")
.data(data)
.enter()
.append("tr").attr("class", "row");
var cells = rows.selectAll("td")
.data(function(row) {
return d3.range(Object.keys(row).length).map(function(column, i) {
return i < 3 ? row[Object.keys(row)[i]] : row[Object.keys(row)[i].resistance];
});
})
.enter()
.append("td")
.text(function(d) { return d; })
});
数据结构如下所示:
[
{
"time": 1388477,
"humidity": 30.7,
"temp": 34.3,
"FSR_1": {
"resistance": 6744,
"force": 1
},
"FSR_2": {
"resistance": 11682,
"force": 1
},
"FSR_3": {
"resistance": 12143,
"force": 1
}
},
{
"time": 1448863,
"humidity": 31.3,
"temp": 34.1,
"FSR_1": {
"resistance": 6829,
"force": 1
},
"FSR_2": {
"resistance": 11231,
"force": 1
},
"FSR_3": {
"resistance": 11186,
"force": 1
}
}
]
如果有人能指出我正确的方向,我将不胜感激!
【问题讨论】:
标签: javascript json d3.js nested