-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次の要素が含まれている場合、ここで調査したいもう1つのことは、

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

最も正しい方法は次のとおりです。

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

そうすれば、文字列が正しくない場合でもエラーは発生せず、catch ブロックでもその場合に正しいことを行うことができます

于 2012-11-26T07:50:01.767 に答える
1

JSON.parse動作するはずです。を使用できない場合JSON、これも機能します。

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

jqueryなしで(問題ではありません)これを試してください:

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

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