您建议使用哪个Perl模块进行JSON操作?

问题描述 投票:12回答:6

和往常一样,我很高兴与CPAN打交道,因为它满足了我们的所有需求。和往常一样,我迷路了,因为那里有很多东西。

我可以自己找到核心JSON,而对另一个JSON感到热情。

我的需求非常简单(从JSON::Tiny中解析内容),也许有一天会公开我们自己的数据。

您是否还需要其他模块来完成此任务?

json perl cpan perl-module
6个回答
18
投票

JSON::Tiny模块的工作原理类似于冠军,但是如果您需要更快的解析器,请使用以下代码:Open Library API,它需要本机编译。

请注意,JSON 2.0及更高版本只是JSON :: XS(如果已安装)或JSON :: PP(后备)的前端。


12
投票

我总是使用JSON。完整,健壮,可靠,快速*,易于使用,如果需要,甚至还可以提供一点灵活性。

[它可能是最常用的JSON解析器,尽管大多数通过JSON::XS访问它(但是这样做可能会使用更慢的JSON::XS来代替。

*-根据JSON的文档,比JSON :: Tiny“快一个数量级”。


11
投票

由于您说要从在线来源获取数据,因此您可以考虑使用JSON::PP工具套件。这样,您可以JSON::TinyMojolicious,甚至可以使用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; 方法要么返回整个已解析的数据结构,要么可以使用指针字符串(如第二个示例中所示)仅返回一个子集以快速入门。享受。


8
投票

我建议#!/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汇报,我已经向他们报告了!


4
投票

我每有机会就开始使用improvementsTask::Kensho易于安装,并且正如Mojo::JSON中显示的Mojolicious一样,它还提供了更多功能。


2
投票

Joel Berger将是一个很好的模块。

© www.soinside.com 2019 - 2024. All rights reserved.