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

标签 javascript json

<分区>

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

var user_roles = "['store_owner', 'super_admin']";

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

最佳答案

是的,这里发布的大多数答案都建议使用 JSON.parse,然后在被删除之前被否决 3 次。人们在这里忽略的是缺少符合 JSON 的引用。然而,字符串是有效的 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);

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

{"thing":["store_owner","super_admin"],"otherThing":["apple","cookies"]} 

不过,请小心使用 eval()! javascript eval() and security

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

关于javascript - 如何将带有数组的字符串转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397094/

相关文章:

javascript - 非常奇怪的 react native 图像问题

javascript - 如何运行函数,当用户没有在特定时间 JS 进行输入时

javascript - 如何在 solidity 0.5.2 或更高版本中分配或重置 address[] payable 变量?

iOS - API 对象和 Controller 之间的通信

javascript - JSON 中的重复键

JavaScript 对象为空

php - jQuery e.preventDefault() 不工作

javascript - 使用jspdf在pdf中添加图像

javascript - Infragistics网络货币编辑四舍五入问题

php - 使用Jquery将php字符串数据转换为Json对象