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

Javascript 将JSON中的字符串csv转换为数组变量,javascript,json,csv,Javascript,Json,Csv,我有以下JSON数据: [ { "Title": "PAGE A", "Users": "USRA" }, { "Title": "PAGE B", "Users": "USRA,USRB" } ] 将带有“,”的字段转换为数组的最佳方法是什么?并使用javascript获取: [ { "Title": "PAGE A", "Users": "USRA"

我有以下JSON数据:

[
    {
        "Title": "PAGE A",
        "Users": "USRA"
    },
    {
        "Title": "PAGE B",
        "Users": "USRA,USRB"
    }
]
将带有“,”的字段转换为数组的最佳方法是什么?并使用javascript获取:

[
    {
        "Title": "PAGE A",
        "Users": "USRA"
    },
    {
        "Title": "PAGE B",
        "Users": ["USRA","USRB"]
    }
]
你可以做:

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(',');
    }
})
如果希望保持一致的数据类型(使
用户
属性始终为
数组
):

你可以做:

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(',');
    }
})
如果希望保持一致的数据类型(使
用户
属性始终为
数组
):


您只需要一个简单的for each和一个split

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;
    }
});

您只需要一个简单的for each和一个split

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;
    }
});

做这样的事

var输入=[
{
“标题”:“A页”,
“用户”:“USRA”
},
{
“标题”:“B页”,
“用户”:“USRA,USRB”
}
];
var输出=[];
输出=输入.map(函数(d){
for(输入d){
如果(d[key].indexOf(',')!=-1){
d[key]=d[key].split(',');
}
} 
返回d;
});
$('#result').html(JSON.stringify(output))

像这样做

var输入=[
{
“标题”:“A页”,
“用户”:“USRA”
},
{
“标题”:“B页”,
“用户”:“USRA,USRB”
}
];
var输出=[];
输出=输入.map(函数(d){
for(输入d){
如果(d[key].indexOf(',')!=-1){
d[key]=d[key].split(',');
}
} 
返回d;
});
$('#result').html(JSON.stringify(output))


看看你需要让第一批用户成为
“用户”:[“USRA”]
。你到底为什么想要不一致的数据类型?让它们都成为数组,不管它们是否只有一个元素。看一看,你需要让第一个用户成为
“Users”:[“USRA”]
。你到底为什么想要不一致的数据类型?让它们都成为数组,不管它们是否只有1个元素。谢谢,这是一个很好的答案,因为它测试了所有密钥的“aaa,bbb”csv问题。谢谢,这是一个很好的答案,因为它测试了所有密钥的“aaa,bbb”csv问题。