Ich versuche, einige Daten von Perl zu JSON auszugeben. Ich kann eine einfache Ausgabe machen, möchte sie aber besser strukturieren.Perl zu JSON, mit Schlüssel/Wert-Paaren
Ich habe ein Array mit einer ID, einer Startzeit und einer Endzeit. Dies ist der Code, den ich ausgeben bin mit:
print header('application/json');
my $json->{$entry} = \@array;
my $json_text = to_json($json);
print $json_text;
Welche zurück:
{"Season":[["1","1330065300","1344038401"],["7","1298505601","1312416001"]]}
Aber ich möchte wie die Ausgabe etwas mehr:
{"Season":0[{"id":1,"DateStart":1330065300,"DateEnd":1344038401},{"id":7,"DateStart":1298505601,"DateEnd":1312416001}]}
jemand helfen kann, wie man meine Ausgabe besser strukturieren?
--- UPDATE ------
Dank Michael. Ich habe versucht, dein Beispiel zu implementieren.
Dies ist der Code zur Zeit:
foreach my $key (keys %$seasons)
{
$seasons->{$key} =
[
map
{
{ id=>$_[0], DateStart=>$_[1], DateEnd=>$_[2] }
} @{$seasons->{$key}}
];
}
Aber es gibt den Fehler (bezogen auf die foreach Linie):
Not a HASH reference at line 148
$ Jahreszeit ist eine ArrayRef Rückkehr von einem SQL fetchall_arrayref
Irgendwelche Hinweise?
Sind CPAN-Bibliotheken verwenden Sie in der Lage, wie http://search.cpan.org/~mlehmann/JSON-XS-2.32/XS.pm? – dsolimano
Der von Ihnen zurückgegebene Code ist ungültig JSON. Sollte diese "0" wirklich da sein? – Quentin
Wenn Sie einen Hash in JSON möchten, muss dieser Teil der Struktur ein Hash in der Perl-Struktur sein. –