如何在 Perl 中将简单的哈希转换为 json?
Posted
技术标签:
【中文标题】如何在 Perl 中将简单的哈希转换为 json?【英文标题】:How to convert a simple hash to json in Perl? 【发布时间】:2012-01-17 19:59:55 【问题描述】:我正在使用下面的代码来编码一个简单的哈希
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);
但我收到以下错误:
hash- or arrayref expected <not a simple scalar, use allow_nonref to allow this>
【问题讨论】:
【参考方案1】:您的代码似乎缺少一些重要的块,所以让我们添加缺少的部分(我将在这里做一些假设)并在我们进行的过程中进行修复。
添加缺少的样板。
#!/usr/bin/perl
use strict;
use warnings;
use JSON;
my $name = "test";
my $type = "A";
my $data = "1.1.1.1";
my $ttl = 84600;
将散列设置为散列而不是数组,不要忘记对其进行本地化:my %
my %rec_hash = ('name'=>$name, 'type'=>$type,'data'=>$data,'ttl'=>$ttl);
实际使用encode_json
方法(传递一个hashref):
my $json = encode_json \%rec_hash;
输出结果:
print $json;
这可以正常工作,没有错误。
【讨论】:
非常感谢您指出这些错误。我正在学习 Perl,但我没有注意到我正在尝试将数组用作哈希,哈哈,谢谢 +1! 缺少反斜杠 (\%rec_hash
) 是我的问题【参考方案2】:
改用%rec_hash = ...
。 @
表示列表/数组,%
表示哈希。
【讨论】:
以上是关于如何在 Perl 中将简单的哈希转换为 json?的主要内容,如果未能解决你的问题,请参考以下文章
在Ruby中将嵌套哈希键从CamelCase转换为snake_case