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

Transform JSON Object into numerical String and vice versa

本文关键字:数字字符 字符串 反之亦然 数字 JSON 对象 转换      更新时间:2023-09-26

(抱歉,如果有类似的问题,我找不到)

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

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

我的方法,因为我有一组有限的属性和可能的值将是硬编码字符串(例如,如果属性1有值x,字符串中的第一个字符是1,如果它有值y,那么它是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;
}

函数从hash中查找setup:

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;
}
相关文章: