序列化列表的好方法?- Javascript/AJAX [英] Good way to serialize a list? - Javascript/AJAX

查看:27
本文介绍了序列化列表的好方法?- Javascript/AJAX的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

只是想问这个问题,因为stackoverflow上总是有很多亮点:)

just felt like asking this as there are always jewels popping up on stackoverflow :)

我有以下列表:

list1 = [['command','arg1','arg2'], ['command2','arg1'], ... ]

您建议如何将其转换为字符串以作为 ONE GET 参数传递?

例如

http://webgame_site.com/command_list/?data=...

<小时>

我目前正在做的是使用逗号分隔列表 , ; ,但我不喜欢这个想法,因为如果我决定在其中引入这些方法会中断字符串.


What I am currently doing is separating lists using commas , ; , but I don't like this idea as the method would break if I decide to introduce these within strings.

我正在尽量精简.

我的一个想法是将列表编码为 base64:

[['command','arg1','arg2'], ['command2','arg1']]
=> "W1snY29tbWFuZCcsJ2FyZzEnLCdhcmcyJ10sWydjb21tYW5kMicsJ2FyZzEnXV0="

比 URIencode 短

which is shorter than URIencode

有什么想法吗?:)

推荐答案

将其转换为 json,然后使用 encodeURI 对字符进行编码.

Convert it to json then encode the characters using encodeURI.

var list1 = [['command','arg1','arg2'], ['command2','arg1']];
var encoded = encodeURI(JSON.stringify(list1));

alert(encoded);

针对 base64 进行

Edit for base64:

var list1 = [['command','arg1','arg2'], ['command2','arg1']];
var encoded = btoa(JSON.stringify(list1));

alert(encoded);
alert(atob(encoded));

这篇关于序列化列表的好方法?- Javascript/AJAX的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆