如何使用Perl解析来自服务器的JSON/REST数据
我试图使用Perl解析出服务器的JSON输出。 REST数据的连接和下载是好的,我只需要帮助解析返回的数据。这里是我的代码片段:如何使用Perl解析来自服务器的JSON/REST数据
my $response = HTTP::Tiny->new->get($SERVER_ADDR);
if ($response->{success})
{
my $html = $response->{content};
@LINES = split /\n/, $html;
chomp(@LINES);
print("Lines: '@LINES'\n"); # ZZZ
my $decoded_json = decode_json($html);
print Dumper $decoded_json;
}
else
{
print "Failed: $response->{status} $response->{reasons}";
}
,这里是结果:
Lines: '{"players":[{"currentlyOnline":false,"timePlayed":160317,"name":"MarisaG","lastPlayed":1474208741470}]}'
$VAR1 = {
'players' => [
{
'currentlyOnline' => bless(do{\(my $o = 0)}, 'JSON::PP::Boolean'),
'timePlayed' => 160317,
'lastPlayed' => '1474208741470',
'name' => 'MarisaG'
}
]
};
会有下的“玩家”的登陆,现在每个玩家多个条目。有小费吗?
我不确定你在问什么。您已通过调用decode_json()
成功解析了JSON。你现在有一个数据结构$decoded_json
。您致电Dumper()
会显示该数据的结构。这是一个带有单个密钥的散列参考,players
。与该键关联的值是数组引用。被引用数组中的每个元素都是另一个散列。
例如,您可以用这样的代码打印所有玩家的名字。
foreach (@{ $decoded_json->{players} }) {
say $_->{name};
}
对于后缀' - > @ *'解引用有什么想法? –
@Сухой27它比它的价值更值得痛苦,它需要'使用特征'和'没有实验性'的杂注。你可以将它用于整个代码库,并将它用在你始终使用的标准init代码中,但它不属于简短的例子。 – ysth
这正是我正在寻找的。谢谢! –
你已经用'decode_json()'解析了json。 –