我能够使用d3.csv读取.csv文件,对其进行分层,然后尝试将对象保存到文件中,以生成D3图的.json文件。基本上,我正在做一个简单的csv到json的转换器。
我仅使用D3 V5和FileSaver.js库。代码运行良好,直到我到达崩溃的JSON.stringify调用为止。如何安全地保存.json文件中生成的根对象?
.csv格式文件也很简单,第一行是描述行格式的标头:id,parentId,size
我使用的代码很简单:
(function () {
"use strict";
var filecsv = "data/Who.csv",
filejson = "data/Who.json";
const partition = data => {
const root = d3.hierarchy(data)
.sum(d => d.data.size)
.sort((a, b) => b.value - a.value);
return d3.partition()
.size([2 * Math.PI, root.height + 1])
(root);
};
d3.csv(filecsv).then(function(vCsvData) {
var data = d3.stratify()(vCsvData);
var root = partition(data);
var blob = new Blob([JSON.stringify(data)], {type: "text/plain;charset=utf-8"}); // crash here
saveAs(blob, filejson);
})
.catch(function(error){
console.log("Something wrong reading data from csv file...");
});
}());