如何保存建立在d3.js脚本中的JSON数据

问题描述:

我 大家好,我是javascript/D3.js编程新手。我需要调整代码,我感觉有点失落。如何保存建立在d3.js脚本中的JSON数据

的主要问题是:如何保存JSON数据集在JavaScript

目前的代码加载一个大的CSV文件,解析和格式化。 我想在另一个程序中移动文件管理部分,但是直接到直接得到格式良好的文件,我想通过运行这个代码并保存输出(即:json = buildHierarchy(csv);)直接保存它。

谢谢为您的帮助!

d3.text("myfile.csv", function(text) { 
 
    var csv = d3.csv.parseRows(text); 
 
    var json = buildHierarchy(csv); //-- THIS IS WHAT I NEED TO SAVE (OR SEE) 
 
}); 
 

 
// function to adjust data 
 

 
function buildHierarchy(csv) { 
 
    var root = {"name": "root", "children": []}; 
 
    for (var i = 0; i < csv.length; i++) { 
 
    var sequence = csv[i][0]; 
 
    var size = +csv[i][1]; 
 
    if (isNaN(size)) { // e.g. if this is a header row 
 
     continue; 
 
    } 
 
    var parts = sequence.split("-"); 
 
    var currentNode = root; 
 
    for (var j = 0; j < parts.length; j++) { 
 
     var children = currentNode["children"]; 
 
     var nodeName = parts[j]; 
 
     var childNode; 
 
     if (j + 1 < parts.length) { 
 
    // Not yet at the end of the sequence; move down the tree. 
 
    \t var foundChild = false; 
 
    \t for (var k = 0; k < children.length; k++) { 
 
    \t if (children[k]["name"] == nodeName) { 
 
    \t  childNode = children[k]; 
 
    \t  foundChild = true; 
 
    \t  break; 
 
    \t } 
 
    \t } 
 
    // If we don't already have a child node for this branch, create it. 
 
    \t if (!foundChild) { 
 
    \t childNode = {"name": nodeName, "children": []}; 
 
    \t children.push(childNode); 
 
    \t } 
 
    \t currentNode = childNode; 
 
     } else { 
 
    \t // Reached the end of the sequence; create a leaf node. 
 
    \t childNode = {"name": nodeName, "size": size}; 
 
    \t children.push(childNode); 
 
     } 
 
    } 
 
    } 
 
    return root; 
 
};

+0

请定义* “看” *。如果你只是想看到对象,只要做'console.log(json)'。 –

+0

谢谢Gerardo:我的目标是将对象保存在.JSON文件中。 最初我也试图看看它,但我在设法做'while console.log(JSON.stringify(json))' – Flecflec

我终于设法保存使用saveAs功能我的文件从https://github.com/eligrey/FileSaver.js/

var blob = new Blob([JSON.stringify(json)], {type: "text/plain;charset=utf-8"}); 
 
saveAs(blob, "sequence_dl.JSON");