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

时间:2016-02-16 06:56:08

标签: javascript jquery arrays save base64

在我的游戏中,我想要一个用户按下按钮的系统,它为他们提供了一个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决赛时,他们将获得一个看起来像这样的字符串

WycyMjI4J10sIFsnMCddLCBbJzAnXQ== 

当它通过加载数据函数时,它以字符串格式化,如数组

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

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

这是一个代码块,用于显示代码块的运行情况(您可以更改前3个变量以获得不同的结果:

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)

那有可能吗?

1 个答案:

答案 0 :(得分:1)

我建议您改用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;
}