将JSON对象转换为数字字符串,反之亦然

时间:2014-07-03 14:41:12

标签: javascript json

(如果有人提出类似的问题,请道歉,我找不到)

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

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

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

1 个答案:

答案 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;
}
相关问题