Ich versuche ein JSON-Objekt zu erstellen, das Zuordnungen zu einem bestimmten Benutzer auflistet, aber noch nie mit verschachtelten JSON-Objekten gearbeitet hat. Das ist, was ich will:JSON-Formatierung in Perl
{
"success":"list of users maps",
"maps":[
{
"id":"1",
"name":"Home to LE",
"date_created":"1366559121"
},
{
"id":"2",
"name":"Test 1",
"date_created":"1366735066"
}
]
}
mit diesem Perl-Code:
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
});
Aber der Ausgang Ich erhalte ist:
{
"success":"list of users maps",
"maps":[
"{\"id\":\"1\",\"name\":\"Home to LE\",\"date_created\":\"1366559121\"}",
"{\"id\":\"2\",\"name\":\"Test 1\",\"date_created\":\"1366735066\"}"
]
}
Also, wenn ich es in meinem Javascript verarbeiten, die data.maps [x] .id ist nicht definiert. Ich bin ziemlich sicher, dass das ausgegebene JSON falsch formatiert ist.
Kann mir jemand helfen, es zu reparieren?
ich die Zeichenfolge ausgeben mich erkannt haben sollte! Danke, ich habe das Perl-Skript geändert und es funktioniert jetzt wunderbar! – skeniver
Beachten Sie, dass vor [Perl 5.14] (http://perldoc.perl.org/perl5140delta.html#Syntax-Enhancements "perldoc perldelta5140") 'push $ maps, ...' als 'push @ geschrieben werden müsste. $ Karten, ... '. –