2009年8月14日金曜日

perlでJSONを使う

PerlでJSONを作るには、JSONモジュールを使う。
WINDOWSで最新のActivePerlの場合は、JSONモジュールは最初から入っていた。
「Perl Package Manager」から確認できる。


Macの場合は、CPANからインストールする必要がある。
先にCPANのインストール。
参考にしたサイト:
CPAN経由でLinuxにモジュールを組み込む
Heart Beat � Blog Archive � Mac OSXでPerlの環境を整える
MacでCPANを使ってPerlモジュールインストール - nmon
CPANを入れたら、コンソールから
$ sudo cpan
Password:
>install JSON
>exit

これでOK。

使うには、use JSON; を指定して、ハッシュのリファレンスを渡してやる。
#test2.pl
use strict;
use warnings;
use utf8;
use Encode;
use JSON;
binmode STDIN, ':encoding(utf8)';
binmode STDOUT, ':encoding(utf8)';
binmode STDERR, ':encoding(utf8)';

my %hash = (
'チョウ' => {
'アゲハチョウ'=>'Papilio xuthus',
'モンシロチョウ'=>'Pieris rapae',
'ゴマダラチョウ'=>'Hestina persimilis japonica'
},
'コガネムシ' => {
'マメコガネ'=>'Popillia japonica',
'カナブン'=>'Rhomborrhina japonica',
'スジコガネ'=>'Anomala testaceipes'
},
'バッタ' => {
'トノサマバッタ'=>'Locusta migratoria',
'ショウリョウバッタ'=>'Acrida cinerea',
'コバネイナゴ'=>'Oxya yezoensis'
}
);

my $hash_ref = \%hash;
my $hash_json = JSON->new->encode($hash_ref);

print $hash_json;
print "\n";

これで、コンソールから
perl test2.pl
で、
{"チョウ":{"ゴマダラチョウ":"Hestina persimilis japonica","モンシロチョウ":"Pieris rapae","アゲハチョウ":"Papilio xuthus"},"バッタ":{"トノサマバッタ":"Locusta migratoria","コバネイナゴ":"Oxya yezoensis","ショウリョウバッタ":"Acrida cinerea"},"コガネムシ":{"スジコガネ":"Anomala testaceipes","マメコガネ":"Popillia japonica","カナブン":"Rhomborrhina japonica"}}
と表示される。OK。

参考:
[Perl] JSON モジュールの utf8 フラグ周りの仕様 tips 注意点 Kawa.netブログ(川崎有亮)/ウェブリブログ

0 件のコメント: