我有一个彼此合作的前端和后端脚本。 JS类型的前端脚本在字符串数组上执行JSON.stringify,并调用后端脚本以对此字符串进行验证。
Perl类型的后端脚本抓取此字符串并从Perl模块JSON执行decode_json。在这一点上,Perl脚本是嘶哑的。
我认为问题与JSON.stringify返回的内容有关。
JS:
var jl = ["Flash", "WonderWoman", "BatMan", "SuperMan", "GreenLantern", "MartianManHunter", "HawkWoman"];
var $jl_string = JSON.stringify(jl);
// assume there is code here that makes an AJAX call which calls the backend script
返回:
"[\"Flash\", \"WonderWoman\", \"BatMan\", \"SuperMan\", \"GreenLantern\", \"MartianManHunter\", \"HawkWoman\"]"
验证上述字符串化字符串的Perl函数:
sub are_jl_members {
my ($jl_string) = @_;
print "<p>$jl_string</p>";
# Failing here. Why?
my $jl = decode_json $jl_string;
print Dumper([$jl]);
}
感谢您的帮助。
答案 0 :(得分:0)
问题是$jl_string
中的额外&#34; \&#34; 。您的JSON.stringify调用是正确的。
您如何在此处打印$jl_string
?
返回:
&#34; [\&#34; Flash \&#34;,\&#34; WonderWoman \&#34;,\&#34; BatMan \&#34;,\&#34; SuperMan \&#34;,\&#34; GreenLantern \&#34;,\&#34; MartianManHunter \&#34;,\&#34; HawkWoman \&#34;]&#34;