字符串到数组nodejs

时间:2014-05-19 15:35:42

标签: javascript node.js

我格式化一个字符串(我可以用任何方式格式化字符串)

e.g

   id1:234,id2:4566,id3:3000

然后对其进行加密并通过查询字符串传递

   ?qs=djdjdjfjf57577574h33h3h3hh3h3

然后在节点

上解密它
   id1:234,id2:4566,id3:3000

这是格式化字符串然后将其转换为节点

中的数组的最佳方法
    arr[id1] = "234";
    arr[id2] = "4566";
    arr[id3] = "3000";

2 个答案:

答案 0 :(得分:4)

我认为您想使用hashmap(object)而不是数组: var obj = {} 然后尝试:

"id1:234,id2:4566,id3:3000".split(",").forEach(function(e){
    var record = e.split(":");
    obj[record[0]] = record[1];
})

给你: {id1: "234", id2: "4566", id3: "3000"}

答案 1 :(得分:3)

首先,你所拥有的对象模型更像是一个类似哈希的对象,或者只是一个带有键和值的JavaScript对象,所以最好的方法就是使用JSON.parse

所以如果你能按照你说的那样做:我可以用任何方式格式化字符串,你最好先改变你的格式,如下所示:

'{"id1":234,"id2":4566,"id3":3000}'

而不是:

id1:234,id2:4566,id3:3000

您可以使用JavaScript对象在客户端JavaScript上使用JSON.stringify执行此操作,而无需处理字符串格式:

//on the client side
var myObj = {};
myObj.id1 = 234;
myObj.id2 = 4566;
myObj.id3 = 3000;
var objStr = JSON.stringify(myObj);

让我们假设您使用名为encrypt的函数加密字符串:

var encryptedStr = encrypt(objStr);
//so now you should use encodeURI to be able to put it in the queryString
var queryStringParam = encodeURI(encryptedStr);

现在您将queryStringParam放入queryString。

然后在node.js端,您应该做的就是将其解析为JSON对象。您可能考虑过的另一个重点是使用decodeURI。最后一步,我们假设您正在使用名为decrypt的电子函数:

//the server-side code
var decryptedStr = decrypt(decodeURI(yourQueryString));
var obj = JSON.parse(decryptedStr);

现在obj正是你想要的。