我一直在Perl中構建一個模擬器,我面臨的其中一個問題是解析位於計算機中的JSON文件。當我試圖從我的服務器獲取他們,他們很好地工作......在Perl中獲取JSON
method getContent(\@arrURLS) {
my %arrInfo;
my $resUserAgent = Mojo::UserAgent->new;
foreach my $strURL (@arrURLS) {
$resUserAgent->get($strURL => sub {
my($resUserAgent, $tx) = @_;
if ($tx->success) {
my $strName = basename($strURL, '.json');
my $arrData = $tx->res->body;
$arrInfo{$strName} = $arrData;
}
Mojo::IOLoop->stop;
});
Mojo::IOLoop->start;
}
return \%arrInfo;
}
假設@arrURLS
是:
my @arrURLS = ("file:///C:/Users/Test/Desktop/JSONS/first.json", "file:///C:/Users/Test/Desktop/JSONS/second.json");
上述網址的是一個人不能工作,但如果我改變即:
my @arrURLS = ("http://127.0.0.1/test/json/first.json", "http://127.0.0.1/test/json/second.json");
它的工作原理。
此外,我想用的東西比Mojo::UserAgent
更好,因爲它似乎有點慢,我是用Coro
與LWP::Simple
時,它是要快得多,但不幸的是Coro
在Perl 5.22壞了......
您可能會對http://www.martin-evans.me.uk/node/169有關速度感興趣。 – simbabque
'Mojo :: UserAgent'對象只支持* http方案。你最好使用'LWP :: UserAgent'來代替它,它透明地支持'http','https','ftp','file','mailto'和其他。 – Borodin