将存储在字符串中的数组转换为数组

时间:2019-04-16 12:12:09

标签: javascript jquery

我有一个数组值,它作为字符串来自数据库。我需要将其转换为数组。当我在控制台中检查我的值时,我可以看到

"[["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"]]"

2 个答案:

答案 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/