2016-04-27 29 views
-4

我想在JavaScript中序列化一個對象,以便我可以在GET請求中查詢它。如何序列化GET請求中查詢的對象?

+1

你做了什麼?內存中的對象是如何看待的? Javascript對象可以轉換爲JSON(Javascript Object Notation)。 'JSON.stringify(<你的JS對象>)'會將你的Javascript對象轉換爲一個字符串,並且你可以用JSON字符串做任何你喜歡的事情,比如將它保存到一個文件或發送它等等 – anu

回答

2

正確的方法,按照標準,就是:

function serialise(obj) { 
    serialised = ''; 
    Object.keys(obj).forEach(function(key) { 
     serialised += encodeURIComponent(key).replace(/%20/g, '+') + '=' + encodeURIComponent(obj[key]).replace(/%20/g, '+') + '&'; 
    }); 
    return serialised.slice(0, -1); 
} 

var queryString = serialise({key: 'value', key2: 'value2'}); 

encodeURIComponent編碼字符串安全爲x-www-form-urlencoded在URL和GET請求(如https://www.google.com/search鍵=值?),除了它替換空間與%20而不是+,所以最後需要.replace

1

使用jQuery做它:

var obj = {'test' : 1, 'other' : 2}; 

console.log($.param($obj)); 
相關問題