Javascript D3如何正确获取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

我试图根据返回的json对象的键值生成列标题。但是,它返回为
[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])