Comment convertir un simple hash en JSON en Perl?
j'utilise le code suivant pour encoder un simple hash
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
@rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
mais j'obtiens l'erreur suivante:
hash- or arrayref expected <not a simple scalar, use allow_nonref to allow this>
26
demandé sur
Quentin
2011-12-11 16:25:18
2 réponses
votre code semble manquer de morceaux significatifs, donc ajoutons les morceaux manquants (je vais faire quelques hypothèses ici) et corrigeons les choses au fur et à mesure.
ajouter le boilerplate manquant.
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
Faire le hachage hachage et pas un tableau et n'oubliez pas de localiser l'endroit: my %
my %rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
en fait, utilisez le encode_json
méthode (en passant un hashref):
my $json = encode_json \%rec_hash;
Sortie le résultat:
print $json;
et cela fonctionne comme je m'y attendais sans erreurs.
52
répondu
Quentin
2011-12-11 12:33:43
%rec_hash = ...
à la place. @
indique une liste / tableau, alors que %
indique un hachage.
4
répondu
Marius Kjeldahl
2011-12-11 12:30:55