为什么这不起作用?
my $myHashEncoded = encode_json \%myHash;
my %myHashDecoded = decode_json($myHashEncoded);
我得到了错误:
Reference found where even-sized list expected at ...
所以我将其更改为:
my $myHashEncoded = encode_json \%myHash;
my $myHashDecoded = decode_json($enableInputEncoded);
但是显然
%myHash
与$myHashDecoded
不同。如何从JSON字符串恢复适当的哈希?
最佳答案
假设您正在使用JSON.pm,the documentation says:
因此,您可以取回所输入的内容。您可以输入hashref,也可以返回hashref。
如果您要使用常规哈希,则只需取消引用它即可,就像使用其他任何hashref一样:
my $myHashRefDecoded = decode_json($myHashEncoded);
my %myHashDecoded = %$myHashRefDecoded;
关于json - 从Perl中的JSON-String解码哈希,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30759097/