如何将带有数组的字符串转换为数组

ABE*_*ILA 6 javascript json

如何将此响应转换为有效数组?
我想对Object.map数据执行:

var user_roles = "['store_owner', 'super_admin']";
Run Code Online (Sandbox Code Playgroud)

这不是有效的JSON,所以我无法使用 JSON.parse

Ber*_* M. 6

是的,这里发布的大多数答案建议使用JSON.parse,然后在被删除之前进行3次投票.人们忽略了缺少符合JSON标准的报价.但是字符串IS是有效的JavaScript.您可以执行以下操作:

const obj = {
  thing: "['store_owner', 'super_admin']",
  otherThing: "['apple', 'cookies']"
}

for (const key in obj) {
  const value = obj[key];
  obj[key] = eval(value);
}

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

输出将是一个有效的JavaScript对象:

{"thing":["store_owner","super_admin"],"otherThing":["apple","cookies"]} 
Run Code Online (Sandbox Code Playgroud)

不过要小心eval()!javascript eval()和安全性

你可以在这里试试:https://es6console.com/jjqvrnhg/

  • 即使有警告`eval()`也不应该考虑.OP将其描述为"响应的一部分"的输入显然超出了他们的控制范围.这些警告特别适用于这种情况. (3认同)