-1

做这些事情的最好方法是什么?

注意:我的数组包含复杂值意味着逗号分隔或侧字符串数组中的对象值和数组字符串用引号括起来,元素用引号括起来。

前任。 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, '"'))

它在这里工作正常,

问候。

4

5 回答 5

6

也许,

JSON.parse('["a", "b", "c"]');

编辑:对于EX。 str从这个问题来看,以下应该有效:

JSON.parse(str.replace(/'{/g, "{").replace(/}'/g, "}").replace(/'/g, "\"").replace(/\\\"/g, "'"))
于 2012-11-26T07:06:41.647 回答
3

这个怎么样:

JSON.parse('["a","b","c"]');
于 2012-11-26T07:06:50.630 回答
1

JSON.parse应该管用。如果你不能使用JSON,这也有效:

var str = '["a","b","c"]'
   ,str2arr = str.replace(/"|\[|\]/g,'').split(',');
//=> str2arr = ['a','b','c']
于 2012-11-26T07:21:37.863 回答
1

最正确的方法是:

try{
    var res = JSON.parse(your_string);
} catch(e){
    //console.log(e);
}

这样,如果字符串不正确,它不会产生错误,并且在 catch 块中,您可以针对这种情况做正确的事情

于 2012-11-26T07:50:01.767 回答
-2

没有jquery(不是问题)试试这个:

var string = '["a","b","c"]';
var myArray = [];
try {
    myArray = eval(string);
}
catch (r) {
}

console.log(myArray)
于 2012-11-26T07:08:19.180 回答