6
我想创建一个JSON对象,列出与特定用户关联的地图,但从未使用过嵌套的JSON对象。这就是我想要的:在Perl中的JSON格式
{
"success":"list of users maps",
"maps":[
{
"id":"1",
"name":"Home to LE",
"date_created":"1366559121"
},
{
"id":"2",
"name":"Test 1",
"date_created":"1366735066"
}
]
}
这个Perl代码:
my $maps = [];
for (my $x = 0; $x < $sth->rows; $x++) {
my ($id, $name, $date) = $sth->fetchrow_array();
my $map = qq{{"id":"$id","name":"$name","date_created":"$date"}};
push $maps, $map;
}
my $j = JSON::XS->new->utf8;
my $output = $j->encode({
"success"=>"list of users maps",
"maps"=>$maps
});
但我得到的输出:
{
"success":"list of users maps",
"maps":[
"{\"id\":\"1\",\"name\":\"Home to LE\",\"date_created\":\"1366559121\"}",
"{\"id\":\"2\",\"name\":\"Test 1\",\"date_created\":\"1366735066\"}"
]
}
所以,当我处理它在我的JavaScript中, data.maps [x] .id是未定义的。我很确定输出的JSON格式不正确。
任何人都可以帮我修复它吗?
我应该意识到字符串问题我自己!谢谢,我已经改变了perl脚本,现在它运行得非常漂亮! – skeniver 2013-04-23 17:43:11
请注意,在[Perl 5.14]之前(http://perldoc.perl.org/perl5140delta.html#Syntactical-Enhancements“perldoc perldelta5140”)'push $ maps,...'必须写成'push @ $地图,...'。 – 2013-04-24 20:15:13