gpt4 book ai didi

javascript - 将 Excel 列映射到父子 JSON

转载 作者:行者123 更新时间:2023-12-03 10:09:02 26 4
gpt4 key购买 nike

我有一个像这样的 CSV 输入:

Column1,Column2,Column3,Column4,Column5
a,b,c,d,e
a,b,f,,
a,g,h,i,
j,k,l,,
j,k,m,n,
o,,,,

我正在尝试将其转换为符合此格式的 JSON 输出 ( http://bl.ocks.org/mbostock/raw/4063550/flare.json ),以便我可以利用 d3.js 可视化父子树 ( http://bl.ocks.org/mbostock/4063570 )。

我希望像该示例一样可视化我的数据,但我没有/不需要权重。如果需要,我可以添加一个通用的一级父级。只是想可视化树。

最大深度始终为 5。

我正在尝试用 PHP 做一些数组的事情(在使用 fgetcsv() 读入之后),但我正在笨手笨脚地四处走动,需要一些帮助。

首选 PHP 或 Javascript 解决方案,因为这是我通过工作计算机设置所能使用的全部内容。我非常感谢您的帮助!

最佳答案

听起来您正在寻找一个树结构,其中的数据如下所示:

          a            j      o
/ \ /
b g k
/ \ \ / \
c f h l m
/ \ \
d i n
/
e

如果是这样,下面的 JavaScript 代码应该可以完成您想要的操作:

var csv = //CSV CONTENT HERE
, data = parseCSV(csv)
, structure = toJSONStructure(data)
, formattedForD3 = toNameChildFormat(structure)

console.log(formattedForD3)

function parseCSV(csv) {
return csv.split('\n').slice(1).map(function(line) {
return line.split(',')
})
}

function toJSONStructure(data) {
var structure = {}
data.forEach(function(line) {
var o = structure
line.forEach(function(val) {
if(val) o = o[val] = o[val] || {}
})
})
return structure
}

function toNameChildFormat(structure) {
return Object.keys(structure).map(function(key) {
return {
name:key,
children:toNameChildFormat(structure[key])
}
})
}

JSFiddle Demo

关于javascript - 将 Excel 列映射到父子 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219875/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com