2017-09-25 98 views
0

我 大家好,我是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

回答