いつものように、必要なものはすべてそろっているので、CPAN と取り引きできることをうれしく思います。いつもながら物が沢山で迷ってしまいます。
自分でコアを見つけ、他のJSON
人で熱意を感じることができますJSON::Tiny
。
私のニーズは非常に単純で ( Open Library APIからのものを解析する)、おそらくいつか、私たち自身のデータを公開します。
このタスクで気に入っている他のモジュールはありますか?
いつものように、必要なものはすべてそろっているので、CPAN と取り引きできることをうれしく思います。いつもながら物が沢山で迷ってしまいます。
自分でコアを見つけ、他のJSON
人で熱意を感じることができますJSON::Tiny
。
私のニーズは非常に単純で ( Open Library APIからのものを解析する)、おそらくいつか、私たち自身のデータを公開します。
このタスクで気に入っている他のモジュールはありますか?
JSONモジュールはチャンピオンのように機能しますが、より高速なパーサーが必要な場合は、ネイティブ コンパイルが必要なJSON::XSを使用してください。
JSON バージョン 2.0 以降は、JSON::XS (インストールされている場合) または JSON::PP (フォールバック) の単なるフロント エンドであることに注意してください。
[更新: JSON::XS よりもCpanel::JSON::XSをお勧めします。Cpanel::JSON::XS は、JSON::XS のより適切に管理されたバージョンです。]
私は常にJSON::XSを使用しています。完全で、堅牢で、実績があり、高速*で、使いやすく、必要に応じて多少の柔軟性も備えています。
これはおそらく最も使用されている JSON パーサーですが、ほとんどがJSONを介してアクセスします(ただし、そうすると、代わりに遅いJSON::PPを使用するリスクがあります)。
* — JSON::Tinyのドキュメントによると、JSON::Tiny よりも「桁違い」に高速です。
あなたはオンライン ソースからデータを取得していると言うので、Mojoliciousツール スイートを検討するかもしれません。そのようにして、データを取得して解析し、 JSON ポインターを使用して情報を抽出することもできます。
基本:
#!/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
応答オブジェクトのメソッドは、解析されたデータ構造全体を返すか、(2 番目の例のように) ポインター文字列を取得してサブセットのみを返すことができることに注意してください。楽しみ。
JSON::MaybeXSをお勧めします- Cpanel::JSON::XS を使用し、JSON::XS と JSON::PP にフォールバックします。
Cpanel::JSON::XS は JSON::XSよりも改善されているため、JSON::MaybeXS はコードを素晴らしく移植可能にします。
通常、特定の状況でどのモジュールを使用すればよいかわからない場合は、 Task::Kenshoを参照しますが、現時点では JSON を持っていないので、報告しました!
私は機会があればMojo::JSONを使い始めました。Mojoliciousはインストールが簡単で、Joel Bergerが彼の回答で示したように、さらに多くの機能が備わっています。
JSON::XSは良いモジュールです。