在Javascript中,如何将一个对象转换为一个数字,然后再转换回来?
在我的网页上,我有一个状态对象,它存储了一些值在Javascript中,如何将一个对象转换为一个数字,然后再转换回来?,javascript,hash,Javascript,Hash,在我的网页上,我有一个状态对象,它存储了一些值 var status = { animal: "cat", page: 4}; 我希望能够使用表示状态对象状态的唯一ID更新URL http://my.website#/searchPage/472940283648 页面上的javascript需要读入数字,并从中生成一个状态对象 http://my.website#/searchPage/472940283648 我想我可以将status对象保存在数据库中,但是有没有办法将该对象转换为某种
var status = { animal: "cat", page: 4};
我希望能够使用表示状态对象状态的唯一ID更新URL
http://my.website#/searchPage/472940283648
页面上的javascript需要读入数字,并从中生成一个状态对象
http://my.website#/searchPage/472940283648
我想我可以将status对象保存在数据库中,但是有没有办法将该对象转换为某种类型的可反转散列?您可以使用该函数用base64方案对字符串进行编码。然后把它解码回来
var obj = { animal: "cat", page: 4 };
// Encode to base64
var hash = btoa(JSON.stringify(obj));
// Decode back to object
var decodedObj = JSON.parse(atob(hash));
如果要将其放入URL中,请不要忘记首先使用,因为base64可能包含以下字符:=
,+
,/
var hashPart = encodeURIComponent(btoa(JSON.stringify(obj)));
var url = 'http://my.website#/searchPage/' + hashPart;
// Decode the uri first
var decodedObj = JSON.parse(atob(decodeURIComponent(hashPart)));
另外,请注意,在某些浏览器上,是全局变量的一部分