Подтвердить что ты не робот

Какой модуль Perl вы бы рекомендовали для манипуляций JSON?

Как обычно, я рад иметь дело с CPAN, потому что он получил все, что нам нужно. Как обычно, я теряюсь, потому что есть много вещей.

Я могу найти ядро ​​JSON один из них и почувствовать энтузиазм JSON::Tiny прочее.

Мои потребности очень просты (разбор материалов из API открытой библиотеки) и, возможно, когда-нибудь, выведите наши собственные данные.

Существуют ли какие-либо другие модули, которые вам нравятся для этой задачи?

4b9b3361

Ответ 1

JSON модуль работает как чемпион, но если вам нужен более быстрый парсер, используйте его: JSON::XS, для которого требуется встроенная компиляция.

Обратите внимание, что версия JSON версии 2.0 и выше является просто интерфейсом для JSON:: XS (если установлена) или JSON:: PP (резервный).

Ответ 2

Я всегда использую JSON::XS. Полный, надежный, проверенный, быстрый *, простой в использовании и даже немного гибкий, если вам это нужно.

Это, вероятно, самый используемый парсер JSON, хотя большинство из них обращаются к нему через JSON (но при этом рискует использовать медленнее JSON::PP).

* — "На порядок" быстрее, чем JSON:: Tiny, согласно JSON::Tiny docs.

Ответ 3

Поскольку вы говорите, что получаете данные из онлайн-источника, вы можете рассмотреть Mojolicious tool suite. Таким образом вы можете получить данные, проанализировать его и может даже использовать указатели JSON для извлечения информации.

Basic:

#!/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;

С конструктором url и указателем 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');

Обратите внимание, что метод json объекта ответа либо возвращает всю анализируемую структуру данных, либо может взять строку указателя (как во втором примере), чтобы вернуть только подмножество, чтобы быстро начать работу. Наслаждайтесь.

Ответ 4

Я бы порекомендовал JSON::MaybeXS - использует Cpanel:: JSON:: XS с отступлением от JSON:: XS и JSON:: PP.

Cpanel:: JSON:: XS имеет улучшения по сравнению с JSON:: XS, поэтому JSON:: MaybeXS делает ваш код приятным и портативным.

Обычно я смотрел Task::Kensho, если я не уверен, какой модуль использовать для конкретной ситуации, У меня есть JSON на данный момент, я сообщил об этом им!

Ответ 5

Я начал использовать Mojo::JSON каждый шанс получить. Mojolicious прост в установке, а Joel Berger показан в его ответ, он поставляется с гораздо большим количеством.

Ответ 6

JSON:: XS будет хорошим модулем.