这是做这些事情的最好方法吗?
注意:我的数组包含复数值,表示逗号分隔或侧字符串数组中的对象值& double 引号和元素中引用的数组字符串位于单个引号中。
EX。 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, '"'))
这里的工作正常,
问候。
答案 0 :(得分:6)
也许,
JSON.parse('["a", "b", "c"]');
编辑:对于问题中的 EX。 str
,以下内容应该有效:
JSON.parse(str.replace(/'{/g, "{").replace(/}'/g, "}").replace(/'/g, "\"").replace(/\\\"/g, "'"))
答案 1 :(得分:3)
这个怎么样:
JSON.parse('["a","b","c"]');
答案 2 :(得分:1)
JSON.parse
应该有效。如果您无法使用JSON
,这也有效:
var str = '["a","b","c"]'
,str2arr = str.replace(/"|\[|\]/g,'').split(',');
//=> str2arr = ['a','b','c']
答案 3 :(得分:1)
最正确的方法是:
try{
var res = JSON.parse(your_string);
} catch(e){
//console.log(e);
}
这样,如果字符串不正确,它将不会产生错误,并且在catch块中你可以为这种情况做正确的事情
答案 4 :(得分:-2)
没有jquery(这不是问题)试试这个:
var string = '["a","b","c"]';
var myArray = [];
try {
myArray = eval(string);
}
catch (r) {
}
console.log(myArray)