将JSON中的字符串csv转换为数组变量

时间:2015-11-20 13:32:20

标签: javascript json csv

我有以下JSON数据:

X = _matrix

使用","转换字段的最佳方法是什么?进入数组?并使用javascript:

y = training_df[['cat1', 'cat2']]

3 个答案:

答案 0 :(得分:2)

你可以这样做:

data = [
    {
        "Title": "PAGE A",
        "Users": "USRA"
    },
    {
        "Title": "PAGE B",
        "Users": "USRA,USRB"
    }
]

data.forEach(function(item) {
    // the if clause keeps the single user outside of an array
    if (item.Users && item.Users.indexOf(',') >= 0) {
        item.Users = item.Users.split(',');
    }
})

如果您希望保持一致的数据类型(使Users属性始终为Array):

data.forEach(function(item) {
    item.Users = item.Users ? item.Users.split(',') : [];
})

答案 1 :(得分:1)

你需要的只是一个简单的分裂

var data = [
    {
        "Title": "PAGE A",
        "Users": "USRA"
    },
    {
        "Title": "PAGE B",
        "Users": "USRA,USRB"
    }
];

data.forEach( function (obj) {
    obj.Users = obj.Users.split(",");
});

现在,如果你真的不希望那个是一个数组,那么你需要添加一个if检查。

data.forEach( function (obj) {
    var parts = obj.Users.split(",");
    if(parts.length>1) {
        obj.Users = parts;
    }
});

答案 2 :(得分:0)

做这样的事情



var input = [
        {
            "Title": "PAGE A",
            "Users": "USRA"
        },
        {
            "Title": "PAGE B",
            "Users": "USRA,USRB"
        }
    ];

var output = [];

output = input.map(function(d){
      for (key in d){
        if (d[key].indexOf(',') !== -1){
          d[key] = d[key].split(',');
          }
      } 
     return d;

});

$('#result').html(JSON.stringify(output));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="result"></div>
&#13;
&#13;
&#13;