将CSV文件转换为JSON以获得用于创建D3分类树的树状结构

时间:2017-08-30 10:04:00

标签: javascript json d3.js

我有一个格式为:

的csv文件
(from u in db.UUT_RESULT
                 where u.UUT_SERIAL_NUMBER == "170607014G100100539F"
                 join sr in db.STEP_RESULT on u.ID equals sr.UUT_RESULT into usr
                 select new
                 {
                     u,
                     usr = (from x in usr
                         join pr in db.PROP_RESULT on x.ID equals pr.STEP_RESULT into prs
                         join sn1 in db.STEP_NUMERICLIMIT1 on x.ID equals sn1.STEP_RESULT into sn1s
                         select new
                         {
                             x,
                             prs = prs.ToList(),
                             sn1s = (from y in sn1s
                                 join sn2 in db.STEP_NUMERICLIMIT2 on y.ID equals sn2.PROP_RESULT into sn1sn2
                                 select new
                                 {
                                     y,
                                     sn1sn2 = sn1sn2.ToList()
                                 }).ToList()
                         }).ToList()
                 }).ToList();

var tempList = new List<UUT_RESULT>();

foreach (var result in results3)
{
   tempList.Add(result.u);
}

我想将其转换为JSON树层次结构,如下所示:

"","Sequence","Paths","sequence_length"
"1","Social -> Social -> Social -> Social -> Social -> Social -> Social -> Social",29,8
"2","Social -> Social -> Social -> Social -> Social -> Social -> Social",30,7
"3","Social -> Social -> Social -> Social -> Social -> Social",40,6
"4","Social -> Social -> Social -> Social -> Social",71,5
"5","Social -> Social -> Social -> Social",156,4
"6","Social -> Social -> Social",273,3
"7","Social -> Social -> SEO",40,3
"8","Social -> Social",729,2
"9","Social -> SEO -> Social",51,3
"10","Social -> SEO",180,2
"11","Social -> SEM",56,2

每个接触点的位置即。 '社交'代表 - &gt;在每行的CSV文件中表示前一个子节点,并将路径添加到最后一个节点。

我试图将社交内容拆分为一个数组

{
"name": "Social",
"children": [{
    "name": "Social",
    "children": [{
        "name": "Social",
        "children": [{
            "name": "Social",
            "children": [{
                "name": "Social",
                "children": [{
                    "name": "Social",
                    "children": [{
                        "name": "Social",
                        "children": [{
                            "name": "Social",
                            "Path": 29
                        }]
                    }]
                }]
            }]
        }]
    }]
}]
}

然后使用这个x来解析JSON.Could任何人都可以帮助我。谢谢!

1 个答案:

答案 0 :(得分:0)

我只为第一行(不是csv的头部)做过,就像你的结果示例一样,我认为它可以做你想要的。

所以你只需创建一个项目数组并通过parseItem传递每个项目。注意:你的最终结果不是一个对象,它是一个数组。

这不是真的需要,但我把它作为一个递归函数

所有.innerHTML ......只是为了表明不会继续下去。如果您愿意,请删除这些行。

你可以从这里拿走它,对吧?

ExcelData