我有一个数组值,它作为字符串来自数据库。我需要将其转换为数组。当我在控制台中检查我的值时,我可以看到
"[["COL1","COL2","COL3"],["COL4","space,"COL5"]]"
为了执行我的操作,我需要将其设置在以下结构中
[["COL1","COL2","COL3"],["COL4","space,"COL5"]]
我已经尝试过JSON.parse()和parseJSON
预期结果:
[["COL1","COL2","COL3"],["COL4","space,"COL5"]]
实际结果:
"[["COL1","COL2","COL3"],["COL4","space,"COL5"]]"
答案 0 :(得分:5)
您需要从字符串中删除外部引号,然后将值传递给JSON.parse()以获取数组。
此外,您必须正确引用每个项目,"space
应该为"space"
。
您可以使用String.prototype.replace()清理字符串(假设space
的引用已在数据库中固定):
const data = '"[["COL1","COL2","COL3"],["COL4","space","COL5"]]"';
const dataSanitized = data.replace(/^"|"$/g,"");
console.log(JSON.parse(dataSanitized));
答案 1 :(得分:-1)
我建议您做parse
JSON.parse('[["COL1","COL2","COL3"],["COL4","space","COL5"]]')
我不会建议评估,因为我只是读了一篇有关“评估如何邪恶”的文章 https://javascriptweblog.wordpress.com/2010/04/19/how-evil-is-eval/