javascript - CSV 到 JSON 转换

标签 javascript json function d3.js

我有一个 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/

相关文章:

javascript - 为什么我无法检索为响应 jQuery AJAX 请求而插入的内容的计算高度?

javascript - Chrome --enable-precise-memory-info 不起作用并且 performance.memory 仍然是 bucketized

json - 使用 sparksql 访问嵌套 json 数据的子字段

javascript - 执行对象的函数/方法

python - 有没有一种简单的方法来 pickle 一个 python 函数(或者序列化它的代码)?

javascript - 数组 - 转换所有日期字段的日期格式

javascript - Chrome 开发者工具控制台 - 日志堆叠,如何查看重新记录的内容 [内部屏幕截图]?

json - 在 Swift 中使用来自 Rest API 的数组填充 UITableview

javascript - 遍历 PHP 中的对象数组

r - R 函数中的非此即彼参数