d3.js 来自 json 对象的图表

d3.js chart from json object

我想在 d3.js 中创建一个简单的饼图。我正在处理的请求响应如下所示:

{"record":[{"status":"request"},{"status":"requirements"},{"status":"request"}]};

根据我在示例中看到的内容,我需要将该对象转换为:

[{"label":"Request", "value":2}, {"label":"Requirements", "value":1}];

我很乐意使用 d3 函数或下划线或直接 javascript 来完成此操作,只是我自己无法破解它。任何帮助将不胜感激!

您可以使用 d3.nest() 重新格式化您的数据:

var data = d3.nest()
    .key(function(d){ return d.status; })
    .rollup(function(leaves){ return leaves.length; })
    .entries(input.record)
    .map(function(d){ return {label: d.key, value: d.values}; });