-4
我想在JavaScript中序列化一個對象,以便我可以在GET請求中查詢它。如何序列化GET請求中查詢的對象?
我想在JavaScript中序列化一個對象,以便我可以在GET請求中查詢它。如何序列化GET請求中查詢的對象?
正確的方法,按照標準,就是:
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
。
使用jQuery做它:
var obj = {'test' : 1, 'other' : 2};
console.log($.param($obj));
你做了什麼?內存中的對象是如何看待的? Javascript對象可以轉換爲JSON(Javascript Object Notation)。 'JSON.stringify(<你的JS對象>)'會將你的Javascript對象轉換爲一個字符串,並且你可以用JSON字符串做任何你喜歡的事情,比如將它保存到一個文件或發送它等等 – anu