2014-07-03 76 views
0

(道歉,如果类似的问题已经被问,我无法找到它)变换JSON对象为数字字符串,反之亦然

基本上我有一个JSON对象,具有约10性质(固定数额),其中包含个人设置对于没有用户系统的应用程序,我希望用户能够获得一个代码,该代码将每个属性的适当值转换为该对象。这样,他们就可以使用固定链接访问应用程序的设置。

问题是:是否有方法或特定的指定技术将JSON序列化对象(即JSON字符串)转换为数字或十六进制代码?我见过几个网站从用户的角度来做类似的事情。

我的方法,因为我有一套有限的属性和可能的​​值将是硬编码字符串(例如,如果属性1的值为x,字符串中的第一个字符为1,如果它的值为y,那么它是2等...),但我想知道是否有最适合这种事情的东西。

回答

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; 
} 
+0

就像一个魅力!现在我感到不好意思让你写我自己写的代码......谢谢! –

相关问题