(如果有人提出类似的问题,请道歉,我找不到)
基本上我有一个JSON对象,其中包含大约10个属性(固定数量),其中包含没有用户系统的应用程序的个人设置,我希望用户能够获得一个代码,该代码使用适当的值转换为该对象每个属性。这样,他们就可以使用永久链接访问应用程序及其设置。
问题是:是否有方法或特定的指示技术将JSON序列化对象(即JSON字符串)转换为数字或十六进制代码?我已经看到几个网站从用户的角度做了类似的事情。
我的方法,因为我有一组有限的属性和可能的值将是硬编码字符串(例如,如果属性1具有值x,字符串中的第一个字符串是1,如果它具有值y,那么它是2,等等。 ..)但我想知道是否有最适合这种事情的东西。
答案 0 :(得分:2)
让我们这样做。
setup
是我用于测试的对象
var setup = { "abc" : "asdasd",
"special" : "my wife hates me",
"Kids" : 7564
};
生成链接的功能:
function generateLinkWithSpecialSetup(setup) {
var str = JSON.stringify(setup);
var hash = "";
for(var i =0; i<str.length;i++) {
hash += str.charCodeAt(i).toString(16);
}
return "example.com/special-setup/#" + hash;
}
用于从散列中查找设置的函数:
function findSetupFromHash() {
var hash = window.location.hash.substring(1);
var str = hex2a(hash);
return JSON.parse(str);
}
function hex2a(hexx) {
var hex = hexx.toString(); //force conversion
var str = '';
for (var i = 0; i < hex.length; i += 2)
str += String.fromCharCode(parseInt(hex.substr(i, 2), 16));
return str;
}