繁体   English   中英

解码base64中的字符串并加载为数组JS

[英]Decode string in base64 and load as array JS

在我的游戏中,我希望有一个系统,在该系统中,用户按下一个按钮,即可为他们提供base64字符串,可以在另一台计算机上输入该字符串以保存数据。

var cash = 2228
var seeds = 0
var Final = 0
var encodedData
var decodedData
var decodeLoad

//Function here where user inputs encoded data and sets it as the encodedData Variable

function savedata() {
    encodedData = window.btoa("['"+ cash + "'], ['" + seeds + "'], ['" + Final + "']");
}
function loaddata() {
    decodedData = window.atob(encodedData);
    decodeLoad = decodedData
}

当用户使用该数据保存2228现金,0种子和0 Final的数据时,他们将获得一个类似于以下内容的字符串

WycyMjI4J10sIFsnMCddLCBbJzAnXQ== 

当通过加载数据功能时,它以字符串形式出现,如数组

"['2228'], ['0'], ['0']"

然后,我希望将该字符串用作数组,然后将值放入正确的变量中(第一个变量为现金,第二个变量为种子,第三个变量为final)。

下面的代码片段显示了该代码块的运行情况(您可以更改前三个变量来获得不同的结果:

 var cash = 2228 var seeds = 0 var Final = 0 var encodedData var decodedData var decodeLoad function savedata() { encodedData = window.btoa("['" + cash + "'], ['" + seeds + "'], ['" + Final + "']"); } function loaddata() { decodedData = window.atob(encodedData); decodeLoad = decodedData } savedata() loaddata() document.write("Encoded: " + encodedData + "<br>Decoded: " + decodedData) 

那有可能吗?

我建议您改用JSON对象字符串,这样可以在对单独的变量进行编码和解码时更容易区分数据。

您可以将变量解析为JSON对象字符串,然后将其转换为base64,如下所示:

function savedata() {
    // Encode into base64 JSON object string
    encodedData = btoa('{"cash":' + cash + ',"seeds":' + seeds + ',"Final":' + Final + '}');
}

这样,您可以使用JSON.parse()轻松解析编码的数据以将其转换为对象,然后将值快速分配回变量:

function loaddata() {
    // Decode the base64 JSON object string
    decodedData = JSON.parse(atob(encodedData));

    // Put the saved values back
    cash = decodedData.cash;
    seeds = decodedData.seeds;
    Final = decodedData.Final;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM