2017-04-03 7 views
1

Javascriptでは、serialize()のキーと値の配列のペアなら、single=Single&multiple=Multipleのようなものになります。キー/値のペアの配列をもう一度取得するために、この文字列を "unserialize"する方法はありますか?そうでない場合は、最も効率的な方法は何ですか?配列へのリクエスト文字列のシリアル化解除

+0

http://stackoverflow.com/a/6487719/1568059を - 多分これは、あなたの質問に答えます。 –

+0

データ構造はどのように見えたのですか? – vol7ron

答えて

0

としては、ここで答え:https://stackoverflow.com/a/10126995/183181

var str = 'single=Single&multiple=Multiple'; 
 
console.log(getParams(str)); 
 

 

 
function getParams (str) { 
 
    var queryString = str || window.location.search || ''; 
 
    var keyValPairs = []; 
 
    var params  = {}; 
 
    queryString  = queryString.replace(/.*?\?/,""); 
 

 
    if (queryString.length) 
 
    { 
 
     keyValPairs = queryString.split('&'); 
 
     for (pairNum in keyValPairs) 
 
     { 
 
     var key = keyValPairs[pairNum].split('=')[0]; 
 
     if (!key.length) continue; 
 
     if (typeof params[key] === 'undefined') 
 
     params[key] = []; 
 
     params[key].push(keyValPairs[pairNum].split('=')[1]); 
 
     } 
 
    } 
 
    return params; 
 
}

+1

私はあなたが同じ答えを再現するのではなく、その質問を重複としてマークするべきだと思います。 – trincot

+0

@trincot私はあなたが正しいと思う;)しかし、データがどのようにフォーマットされると予想されるかが決まるまで、私はここにも残す – vol7ron

関連する問題