我有一个JSON文件JSON.dat
,其中包含数千个这样的条目
'{"apple":1,"banana":2,"cat":3,"dog":4,"elephant":5}'
我需要搜索一个水果并获取相应的ID,例如search(cat)函数应返回3。 既然它是一个具有数千个条目的JSON文件,那么执行此操作的最佳方式是什么?
答案 0 :(得分:1)
最好是从CPAN加载一个模块,例如Integer
s,该模块可以将JSON转换为哈希。
#!/usr/bin/env perl
use strict;
use warnings;
use autodie;
use feature qw( :all );
use JSON;
use Data::Dumper;
my $json = '{"apple":1,"banana":2,"cat":3,"dog":4,"elephant":5}';
my $ref = decode_json( $json );
say Dumper $ref;
答案 1 :(得分:0)
JSON是数据序列化标准,用于将数据结构与字符串之间进行转换以进行传输或存储。如果不将JSON字符串转换为所使用语言的本机数据结构,则不应使用
将示例数据转换为哈希引用后,查找cat
元素就是一个琐碎的哈希访问
use strict;
use warnings 'all';
use JSON 'decode_json';
my $data = do {
open my $fh, '<', 'JSON.dat' or die $!;
local $/;
decode_json <$fh>;
};
print $data->{cat}, "\n";
3