我有一个包含2列的.csv文件 - 公司和标准软件appID。我读了每一行并使用公司作为键,然后值是appID数组。
预期产出:
{"Company A" : ["1","2","3"], "Company B" : ["2","3"]}
这是实际的代码和逻辑:
步骤1:读取.csv,将值存储为数组并以localStorage的形式保存为JSON字符串:
$(document).load('./software/software_standard.csv',function(data){
var lines = data.split('\n');
var software_object = {};
for(i=1;i<lines.length;i++) {
currentline = lines[i].split(',');
if(software_object [currentline[0]]){
var array = software_object[currentline[0]];
array.push(currentline[1]);
}
else {
var array = new Array();
array.push(currentline[1])
software_object[currentline[0]] = array;
}
}
var JSON_string = JSON.stringify(software_object);
localStorage.setItem('object',JSON_string);
})
第2步:在localStorage上获取项目 - var x = LocalStorage.getItem('object'):
{"Test - Tokyo Tokyo":"[\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]","Account 7":"[\"1\"]","BPI":"[\"6\"]","":"[\"\"]"}
第3步:解析返回的项目 - var y = JSON.parse(x):
{Test - Tokyo Tokyo: "["1", "2", "3", "4", "5", "6", "7", "8", "9"]", Account 7: "["1"]", BPI: "["6"]", "": "[""]"}
第4步:访问第一个键 - y [“测试 - 东京东京”]:
输出是一个字符串:"["1", "2", "3", "4", "5", "6", "7", "8", "9"]"
问题:
预期输出应该是数字数组 - 而不是字符串。我已经扫描了Stackoverflow但找不到完全匹配。我试图通过删除3个字符“,[和]来获得这样的值来解决这个问题:
y["Test - Tokyo Tokyo"] = "1, 2, 3, 4, 5, 6, 7, 8, 9"
然后使用.split(',')
将其转换回数组。
这有更简单的解决方案吗?
答案 0 :(得分:0)
{"Test - Tokyo Tokyo":"[\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"]","Account 7":"[\"1\"]","BPI":"[\"6\"]","":"[\"\"]"}
&#34;测试的价值 - 东京东京&#34;是一个字符串
如果它是一个数组,它将是这样的:
{"Test - Tokyo Tokyo":["1", "2", "3", "4", "5", "6", "7", "8", "9"],"Account 7":["1"],"BPI":["6"],"":[""]}