2017-04-03 65 views
1

在Javascript中,如果您的鍵/值數組對爲serialize(),那麼您將得到類似single=Single&multiple=Multiple的東西。有什麼辦法可以「反序列化」這個字符串來重新獲得一個鍵/值對的數組嗎?如果不是,最有效的方法是什麼?將請求字符串反序列化爲數組

+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

相關問題