[英]Convert “['a','b','c']” to ['a','b','c'] : Javascript
哪种方法最适合做这些事情?
注意:我的数组包含复数值,表示用逗号分隔或对象值在边字符串数组中,并且数组字符串用双引号引起来,而元素用单引号引起来。
例如 str = "['sam', 'admin', '1062', 'Sam', 'True', '$$global_permissions#1062:manage_replenishment,purchase_order,reprint_invoice#1008', 'sameer@opnce.com', '9920580', 'en', '358', '{\\"Sales-tax-details\\":\\"brand,category,supplierNo\\",\\"invoice-logs\\":\\"invoiceNo,eventDateTime,event\\"}']"
在这里,我玩了JSON.parse
,
JSON.parse(str);
Uncaught SyntaxError: Unexpected token ' // this error i got on console
然后我尝试了
JSON.parse(str.replace(/'/g, '"'))
Uncaught SyntaxError: Unexpected token S // this error i got on console
我想在这里探索的另一件事是,如果str
包含以下元素,
str = "['sam', 'admin', '1062', 'Sam', 'True', '$$global_permissions#1062:manage_replenishment,purchase_order,reprint_invoice#1008', 'sameer@opnce.com', '9920580', 'en', '358', '{}']"
这个str
我想,
JSON.parse(str.replace(/'/g, '"'))
在这里工作正常,
问候。
也许,
JSON.parse('["a", "b", "c"]');
编辑 :对于EX。 从问题中获取str
,以下方法应该起作用:
JSON.parse(str.replace(/'{/g, "{").replace(/}'/g, "}").replace(/'/g, "\"").replace(/\\\"/g, "'"))
这个怎么样:
JSON.parse('["a","b","c"]');
JSON.parse
应该可以工作。 如果您不能使用JSON
,这也可以:
var str = '["a","b","c"]'
,str2arr = str.replace(/"|\[|\]/g,'').split(',');
//=> str2arr = ['a','b','c']
最正确的方法是:
try{
var res = JSON.parse(your_string);
} catch(e){
//console.log(e);
}
这样,如果字符串不正确,则不会产生错误,并且在catch块中,您可以针对这种情况做正确的事情
不用jQuery(不是问题)试试这个:
var string = '["a","b","c"]';
var myArray = [];
try {
myArray = eval(string);
}
catch (r) {
}
console.log(myArray)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.