Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Javascript中,如何将一个对象转换为一个数字,然后再转换回来?_Javascript_Hash - Fatal编程技术网

在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)));
另外,请注意,在某些浏览器上,是全局变量的一部分