和往常一样,我很高兴与CPAN打交道,因为它满足了我们的所有需求。和往常一样,我迷路了,因为那里有很多东西。
我可以自己找到核心JSON
,而对另一个JSON
感到热情。
我的需求非常简单(从JSON::Tiny
中解析内容),也许有一天会公开我们自己的数据。
您是否还需要其他模块来完成此任务?
JSON::Tiny
模块的工作原理类似于冠军,但是如果您需要更快的解析器,请使用以下代码:Open Library API,它需要本机编译。
请注意,JSON 2.0及更高版本只是JSON :: XS(如果已安装)或JSON :: PP(后备)的前端。
由于您说要从在线来源获取数据,因此您可以考虑使用JSON::PP工具套件。这样,您可以JSON::Tiny,Mojolicious,甚至可以使用get the data提取信息。
基本:
parse it
带有URL构造函数和JSON指针:
JSON pointers
请注意,响应对象上的#!/usr/bin/env perl
use strict;
use warnings;
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;
my $data = $ua->get('http://openlibrary.org/search.json?title=perl%20modules')
->res
->json;
方法要么返回整个已解析的数据结构,要么可以使用指针字符串(如第二个示例中所示)仅返回一个子集以快速入门。享受。
我建议#!/usr/bin/env perl
use strict;
use warnings;
use v5.10;
use Mojo::URL;
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;
my $url = Mojo::URL->new('http://openlibrary.org/search.json')
->query( title => 'perl modules' );
say $ua->get($url)
->res
->json('/docs/0/title_suggest');
-使用Cpanel :: JSON :: XS并回退到JSON :: XS和JSON :: PP。
Cpanel :: JSON :: XS在JSON :: XS上具有json
,因此JSON :: MaybeXS使您的代码更加美观和可移植。
通常,如果我不确定在特定情况下使用哪个模块,尽管它们目前没有JSON,我通常会向JSON::MaybeXS汇报,我已经向他们报告了!
我每有机会就开始使用improvements。 Task::Kensho易于安装,并且正如Mojo::JSON中显示的Mojolicious一样,它还提供了更多功能。
Joel Berger将是一个很好的模块。