Perl的JSON decode_json与JSON.stringify字符串

时间:2014-04-17 22:05:51

标签: javascript json perl

我有一个彼此合作的前端和后端脚本。 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]);        
}

感谢您的帮助。

1 个答案:

答案 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;