【发布时间】:2016-01-18 15:30:12
【问题描述】:
我是 Perl 新手,想循环访问 JSON 数据。
这是我的代码:
use JSON::XS;
my $jsonxx = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
my $text = decode_json($jsonxx);
foreach my $key(keys %$text) {
print "$key\n";
}
输出是:
e
c
a
b
d
但我希望按给定键值对的顺序输出。
预期输出:
a
b
c
d
e
有人可以帮忙吗?
【问题讨论】:
-
这是不可能的。 JSON 对象/Perl 哈希根据定义是无序的。但是,您可以对键进行排序,这仍然可能会得到您想要的。如果你需要一个有序的集合,数组就是你想要的。
-
for(sort { $h->{$a} $h->{$b} } keys %$h) { print "$_\n" } 如果你需要排序输出。排序哈希是不可能的