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