4 回答
TA贡献1816条经验 获得超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);
TA贡献1752条经验 获得超4个赞
您可以使用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);
TA贡献1798条经验 获得超7个赞
如果你被迫使用这个字符串,那么你必须“让它”看起来像 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)
TA贡献1856条经验 获得超17个赞
您可以使用
JSON.parse(string);
UPD:我没有注意到使用了 JSON 不兼容的单引号。
我建议只用双引号替换它们:
const jsonCompatString = string.replace(/'/g, `"`);
const serverData = JSON.parse(jsonCompatString);
添加回答
举报