如何将这部分响应转换为有效的数组?
我要对数据执行 Object.map
:
var user_roles = "['store_owner', 'super_admin']";
这不是有效的JSON,所以我不能使用JSON.parse
答案 0 :(得分: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);
输出将是有效的javascript对象:
{"thing":["store_owner","super_admin"],"otherThing":["apple","cookies"]}
不过,请注意eval()
! javascript eval() and security
您可以在这里尝试:https://es6console.com/jjqvrnhg/
答案 1 :(得分:3)
我为string kipindoc = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
if (Directory.Exists(@kipindoc + @"\kipin"))
{
//code
}
else
{
loading.IsActive = false;
MessageDialog messageDialog = new MessageDialog("Buku Pengetahuan Umum tidak tersedia");
messageDialog.Commands.Add(new UICommand("Kembali", (command) =>
{
this.Frame.Navigate(typeof(MainPage));
}));
await messageDialog.ShowAsync();
}
找到了here
将字符串的含义替换为由JSON.parse
单引号表示的字符串:
''
答案 2 :(得分:-1)
JSON.parse(user_roles.replace(/(?<!\\)'/g,'"')
这通过修复无法用JSON解析代码的原因而起作用。原因是JSON不允许您使用单引号('),因此我们将其更改为双引号(“)
我这样做的目的是,当'
之前是\
时,它不会被"
取代。