Arrays 在perl中将JSON对象列表解码为哈希数组

Arrays 在perl中将JSON对象列表解码为哈希数组,arrays,json,perl,Arrays,Json,Perl,我是Perl的新手,我想将下面的JSON解析为哈希数组(最好使用map方法) 然后只想打印“ 名字 及 身份证 foreach循环中的值。 任何形式的帮助都将不胜感激 use JSON::XS qw( decode_json ); my $data = decode_json($json); $template->process(..., { data => $data }, ...) or die(...); 模板: [% FOREACH rec IN data %]

我是Perl的新手,我想将下面的JSON解析为哈希数组(最好使用map方法)

然后只想打印“

名字

身份证

foreach循环中的值。 任何形式的帮助都将不胜感激

use JSON::XS qw( decode_json );

my $data = decode_json($json);

$template->process(..., { data => $data }, ...)
   or die(...);
模板:

[% FOREACH rec IN data %]
   [% rec.id %]: [% rec.name %]
[% END %]
错误处理显然是可选的,这取决于您的使用情况。一次性或手动脚本可能会死掉,而生产级脚本应该有适当的错误处理

该模块是and的包装器。它选择本地系统上可用的模块。JSON::XS速度更快,但可能无法安装。JSON::PP是纯Perl(没有外部C/C++库)和Perl核心的一部分

代表顶级JSON数组的
行。每个项目都应该是一个哈希引用。按照链接了解每个主题的更多信息。

您可以像这样做

use JSON qw(encode_json decode_json);

my $JSON = [{   "name" : "Theodor Nelson",
        "id": "_333301",
        "address": "Hello_world },
        {   "name": "Morton Heilig",
        "id": "_13204",
        "address": "Welcome"}]

my $decoded = decode_json $JSON;

return template 'yourtemplate', {
    options =>  $decoded,
        ..,
        ..}

在视图文件中,您可以通过
option.id
option.name
option.address
或FOREACH循环中所需的任何内容来访问它。

您应该查看该模块。有很多示例准确描述了您正在尝试的操作。
my$aref=decode\u json($str);打印“$->{id}:$->{name}\n"换成"阿雷夫",你能告诉我如何打印视图文件中的值吗?我不明白你在问什么。我的意思是,如果我将上面的哈希数组传递到视图文件(.tt)文件中,那么我如何使用/获取值来在字段中显示这些值?你需要回答你的问题以包含一些代码。
use JSON qw(from_json);

# The JSON module likes to die on errors
my $json_data = eval { return from_json($json); };
die "$@ while reading JSON" if $@; # Replace by your error handling
die "JSON top level is no array" unless ref($json_data) eq 'ARRAY'; # Replace by your error handling

for my $hashref (@{$json_data}) {
    print $hashref->{name}."\n";
    print $hashref->{id}."\n";
}
use JSON qw(encode_json decode_json);

my $JSON = [{   "name" : "Theodor Nelson",
        "id": "_333301",
        "address": "Hello_world },
        {   "name": "Morton Heilig",
        "id": "_13204",
        "address": "Welcome"}]

my $decoded = decode_json $JSON;

return template 'yourtemplate', {
    options =>  $decoded,
        ..,
        ..}