使用 JavaScript 将存储为字符串的嵌套数组转换回嵌套数组

mlg*_*vla 0 javascript

我有一个嵌套数组作为字符串存储在我的数据库中。获取后,它以字符串形式返回。我需要将它转换回嵌套数组。JSON.parse 对此不起作用,不幸的是,我收到此错误:

VM5481:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 2

本质上,我需要转换这个:

"[['E4', '4n.'], ['D4', '8n'], ['C4', '4n'], ['D4', '4n']]"
Run Code Online (Sandbox Code Playgroud)

对此:

[['E4', '4n.'], ['D4', '8n'], ['C4', '4n'], ['D4', '4n']]
Run Code Online (Sandbox Code Playgroud)

使用 JavaScript。

Nic*_*ons 5

使用 JSON 时,字符串文字应使用双引号"而不是单引号。您可以更改任何给您的字符串以使用双引号(即:有效的 JSON 字符串)或使用该.replace()方法更改现有字符串:

const str = "[['E4', '4n.'], ['D4', '8n'], ['C4', '4n'], ['D4', '4n']]";
const res = JSON.parse(str.replace(/'/g, '"'));
console.log(res);
Run Code Online (Sandbox Code Playgroud)

如果您可以控制它,我建议更改通过 replace 方法返回字符串的任何内容。