我有一个字符串如下:
my_string = "['page1',5],['page2',3],['page3',8]";
Run Code Online (Sandbox Code Playgroud)
我想将其转换为以下内容:
my_array = [['page1',5],['page2',3],['page3',8]];
Run Code Online (Sandbox Code Playgroud)
我知道有一个分割函数,我必须在其中指定分隔符。当我这样做时:-
my_string.split(',');
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
["['page1'", "5]", "['page2'", "3]", "['page3'", "8]"]
Run Code Online (Sandbox Code Playgroud)
您应该尝试做的第一件事是创建my_string一个有效的 JSON 字符串。这意味着字符串两边不是单引号 ( '),而是双引号 ( ")。要创建这样的 JSON 字符串,您可以使用JSON.stringify()要转换为字符串的数据。以下是您可以使用的数组的有效 JSON 字符串JSON.parse(my_string):
const my_string = '[["page1",5],["page2",3],["page3",8]]';
const res = JSON.parse(my_string);
console.log(res);Run Code Online (Sandbox Code Playgroud)
如果您出于某种原因无法执行此操作,则可以尝试以下选项之一。
您可以使用JSON.parse()和.replace()使您的字符串成为可解析的有效 JSON 字符串,如下所示:
const my_string = "['page1',5],['page2',3],['page3',8]",
stringified = '['+my_string.replace(/'/g, '"')+']';
console.log(JSON.parse(stringified));Run Code Online (Sandbox Code Playgroud)
或者您可以使用Function构造函数“松散”地解析您的 JSON。my_string请注意,您应该仅在来自受信任的来源(即:不是用户输入)时使用它:
const my_string = "['page1',5],['page2',3],['page3',8]";
arr = Function('return [' + my_string + ']')();
console.log(arr);Run Code Online (Sandbox Code Playgroud)