Javascript D3如何正确获取json对象内部的键值
我试图根据返回的json对象的键值生成列标题。但是,它返回为Javascript D3如何正确获取json对象内部的键值,javascript,json,d3.js,Javascript,Json,D3.js,我试图根据返回的json对象的键值生成列标题。但是,它返回为[0,1],而不是[key[1],key[2]] 这是我的json数据,我正在尝试使用D3获取这个对象的键(例如“Label”、“Count”)作为我的列标题,而不是静态插入它 [ { "Label": "External-Partner-Induced", "Count": 9 }, { "Label": "Null", "Count": 1 }, { "Label": "FCTS-Induced", "Cou
[0,1]
,而不是[key[1],key[2]]
这是我的json数据,我正在尝试使用D3获取这个对象的键(例如“Label”、“Count”)作为我的列标题,而不是静态插入它
[
{
"Label": "External-Partner-Induced",
"Count": 9
},
{
"Label": "Null",
"Count": 1
},
{
"Label": "FCTS-Induced",
"Count": 66
},
{
"Label": "EI-Partner-Induced",
"Count": 78
}
]
这是我的d3代码:
d3.json('dataQualityIssuesCategory.json', function (error,data) {
function tabulate(data, columns) {
var table = d3.select('body').append('table')
var thead = table.append('thead')
var tbody = table.append('tbody');
// append the header row
thead.append('tr')
.selectAll('th')
.data(columns).enter()
.append('th')
.text(function (column) { return column; });
// create a row for each object in the data
var rows = tbody.selectAll('tr')
.data(data)
.enter()
.append('tr');
// create a cell in each row for each column
var cells = rows.selectAll('td')
.data(function (row) {
return columns.map(function (column) {
return {column: column, value: row[column]};
});
})
.enter()
.append('td')
.text(function (d) { return d.value; });
return table;
}
// render the table
tabulate(data, [d3.keys(data)[0], d3.keys(data)[1]]); // 2 column table
});
tablate函数是我试图获取列标题的键字段的地方,但是上面的代码似乎获取的是整个对象,而不是其中的值。示例:
[0,1]
作为列标题,而不是[Label,Count]
:请注意,数据
是一个对象数组,而不是一个对象。因此,要获取对象的键,您应该在数组中的一个对象上应用d3.keys
函数。像这样-
tabulate(data, d3.keys(data[0])); //data[0] is an object, applying d3.keys(data[0]) will return [Label, Count]
var数据=[{
“标签”:“外部合作伙伴诱导”,
“计数”:9
},
{
“标签”:“空”,
“计数”:1
},
{
“标签”:“诱导FCT”,
“计数”:66
},
{
“标签”:“EI合作伙伴诱导”,
“计数”:78
}
];
功能表格(数据、列){
var table=d3。选择('body')。追加('table'))
var thead=table.append('thead')
var tbody=table.append('tbody');
//追加标题行
thead.append('tr')
.selectAll('th')
.data(列)。输入()
.append('th')
.text(函数(列){
返回列;
});
//为数据中的每个对象创建一行
var rows=tbody.selectAll('tr')
.数据(数据)
.输入()
.append('tr');
//在每行中为每列创建一个单元格
变量单元格=行。选择全部('td')
.数据(功能(行){
返回columns.map(函数(列){
返回{
专栏:专栏,
值:行[列]
};
});
})
.输入()
.append('td'))
.文本(功能(d){
返回d值;
});
返回表;
}
//渲染桌子
制表(数据,d3.键(数据[0])代码>