如何将字符串解析为特定的数组字符?

在某些时候,我能够将这个数组从我的节点 js 服务器结束到导航器页面,但它是作为一个字符串接收的,所以我需要将它解析成一个数组

"['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]"

有什么工具可以帮我把它解析成数组形式吗?


米琪卡哇伊
浏览 110回答 4
4回答

繁华开满天机

您需要将单引号替换为双引号并将字符串括在方括号中以获取数组数组。const    string = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]",    array = JSON.parse(`[${string.replace(/'/g, '"')}]`);console.log(array);eval如果数据可靠,另一种方法是使用。const    string = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]",    array = eval(`[${string}]`);console.log(array);

温温酱

您可以使用JSON.parse将字符串转换为数组。在这里,请注意单引号。在使用 之前JSON.parse,您需要将单引号 ( ') 转换为双引号 ( ")。var str = "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]";var parsedArray = JSON.parse(`[${str.replaceAll("'", '"')}]`);console.log(parsedArray);

元芳怎么了

如果你被迫使用这个字符串,那么你必须“让它”看起来像 JSON,但请注意这是一个非常糟糕的主意,你应该考虑在后端做一些其他事情以便将 JSON 字符串发送到前端end,而不是具有某种格式的字符串。如果你想冒险,你可以这样做:let res = JSON.parse('[' + "['Date', 'Call (minutes)'],['Date1', 100],['Date2', 1370],['Date3', 660],['Date4', 1030],['Date5', 1000],['Date6', 1170],['Date7', 660]".replaceAll("'", '"') + ']')console.log(res)

慕慕森

您可以使用JSON.parse(string);UPD:我没有注意到使用了 JSON 不兼容的单引号。我建议只用双引号替换它们:const jsonCompatString = string.replace(/'/g, `"`);const serverData = JSON.parse(jsonCompatString);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript