Tôi đang cố gắng tạo một đối tượng JSON liệt kê các bản đồ liên quan đến một người dùng cụ thể, nhưng chưa từng làm việc với các đối tượng JSON lồng nhau. Đây là những gì tôi muốn:Định dạng JSON trong Perl
{
"success":"list of users maps",
"maps":[
{
"id":"1",
"name":"Home to LE",
"date_created":"1366559121"
},
{
"id":"2",
"name":"Test 1",
"date_created":"1366735066"
}
]
}
với mã này 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
});
Nhưng đầu ra tôi nhận được là:
{
"success":"list of users maps",
"maps":[
"{\"id\":\"1\",\"name\":\"Home to LE\",\"date_created\":\"1366559121\"}",
"{\"id\":\"2\",\"name\":\"Test 1\",\"date_created\":\"1366735066\"}"
]
}
Vì vậy, khi tôi xử lý nó trong Javascript của tôi, data.maps [x] .id là không xác định. Tôi khá chắc chắn rằng đầu ra JSON được định dạng không chính xác.
Có ai có thể giúp tôi khắc phục sự cố không?
tôi nên đã nhận chuỗi hành bản thân mình! Cảm ơn, tôi đã thay đổi kịch bản perl và nó hoạt động tốt đẹp ngay bây giờ! – skeniver
Lưu ý rằng trước [Perl 5.14] (http://perldoc.perl.org/perl5140delta.html#Syntactical-Enhancements "perldoc perldelta5140") 'push $ maps, ...' sẽ phải được viết là 'push @ $ maps, ... '. –