我有一个 csv 文件,格式为:
"","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
我想将其转换为 JSON 树层次结构,如下所示:
"Root" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"children" : [
{
"Sequence" : "Social",
"Path" : 29}],
}
}
每个接触点即。 CSV 文件中每一行中由 -> 表示的“社交”表示前一行的子节点,路径将添加到最后一个节点。
我正在尝试将社交事物拆分为一个数组
data.forEach(function(d){
var x = d.Sequence.split(' -> ');
然后使用这个 x 解析成 JSON。有人可以帮我吗。谢谢!
最佳答案
您的问题是您在定义对象期间已经调用了匿名函数masterTag
。在这种情况下,您分配给 masterTag
的函数不是 adserver
的函数,而是一个简单的值分配。当在对象创建期间调用该函数时,它没有正确的作用域,即 this
不是 adserver
对象。
例如,这会起作用:
var adserver = {
createIframe : function (url) {
console.log(url);
},
trackSQ: (function () { })(),
masterTag: (function (type,cat) {
var self = this;
self.createIframe("test");
})
}
当你打电话时
adserver.masterTag("targe0","maste0");
(我已将您的代码稍微更改为一个最小的示例)
关于javascript - CSV 到 JSON 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625621/