加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

从Perl中的JSON-String解码哈希

发布时间:2020-12-16 06:09:46 所属栏目:大数据 来源:网络整理
导读:为什么这不起作用? my $myHashEncoded = encode_json %myHash;my %myHashDecoded = decode_json($myHashEncoded); 我收到错误: Reference found where even-sized list expected at ... 所以我改成了: my $myHashEncoded = encode_json %myHash;my $myH
为什么这不起作用?

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:

The opposite of encode_json: expects an UTF-8 (binary) string and tries to parse that as an UTF-8 encoded JSON text,returning the resulting reference.

所以你要收回你所放入的内容.你正在放入一个hashref,然后你就会得到一个hashref.

如果你想要一个常规哈希,那么你只需取消引用它就像你对其他hashref一样:

my $myHashRefDecoded = decode_json($myHashEncoded);
my %myHashDecoded = %$myHashRefDecoded;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读