/ / JSON in Perl dekodieren [geschlossen] - JSON, Perl, Decodierung

JSON in Perl dekodieren [geschlossen] - JSON, Perl, Dekodierung

Ich habe eine JSON-Datei wie diese (sie ist ein Teil der gesamten JSON-Datei):

{
id => "mgp1310",
samples => [
{
envPackage => {
data => {
diss_carb_dioxide => {
aliases    => ["sediment_diss_carb_dioxide"],
definition => "concentration of dissolved carbon dioxide",
mixs       => 1,
required   => 0,
type       => "text",
unit       => "",
value      => "17 mM",
},
},
id => "mge64559",
},
},
],
}

Dies wurde von Modul JSON dekodiert, wobei Folgendes verwendet wurde:

use Data::Dumper;
use JSON;

open($fh, "<", "hola.txt" );
$json_text   = <$fh>;
$perl = decode_json($json_text);
print Dumper($perl);

Jetzt weiß ich das $perl hat einen Hash. Also möchte ich das drucken id der JSON-Datei mit print $perl{"id"};. Es druckt jedoch nichts, ich weiß nicht warum.

Antworten:

5 für die Antwort № 1

Ich habe die Antwort gefunden, indem ich hinzugefügt habe use strict bei meinem Code. Es hat den folgenden Fehler ausgelöst:

Global symbol "%perl" requires explicit package name at json.pl line 12.

Die Variable $perl ist ein Skalar, kein Hash !. Natürlich ... Ich habe nicht darüber nachgedacht. Ich kann also nicht auf das Hash-Schreiben zugreifen $perl{"id"}. Der richtige Weg ist $perl->{id}.