【发布时间】:2017-03-01 17:47:27
【问题描述】:
jQuery.ajax() 将复杂的 JavaScript 对象编码成这样的查询字符串:
?a[b][]=1&a[b][]=2&a[c]=3
我想把它解码成这样的 Perl 数据结构:
{ a=>{ b=>[1,2], c=>3 } }
PHP 默认执行此操作。有没有办法在 Perl CGI 脚本中也能做到这一点?不一定使用 CGI.pm;我可以安装任何我想要的库。
目前我只能解码一维数组,因为 CGI 模块的param() 函数可以返回一个数组。
【问题讨论】:
-
@choroba 这不是 JSON。
-
我知道但不能改用 JSON 吗?
-
你控制 JavaScript 代码吗?如果是这样,请将您的对象转换为 JSON 字符串,对其进行 URL 编码,然后发送。 JSON 是独立于语言的标准,而 jQuery 的
.param方法则不是。另见stackoverflow.com/q/15872658 -
@ThisSuitIsBlackNot 更好的是,跳过所有 URI 编码、查询解析、查询参数大小限制以及通过 GET 和 POST JSON 发送数据的安全问题。
标签: perl parsing cgi query-string