-
Notifications
You must be signed in to change notification settings - Fork 7
Mojo::JSON
yuki-kimoto edited this page May 29, 2012
·
10 revisions
Mojo::JSON - 最小限の JSON
use Mojo::JSON;
my $json = Mojo::JSON->new;
my $string = $json->encode({foo => [1, 2], bar => 'hello!'});
my $hash = $json->decode('{"foo": [3, -2, 1]}');
Mojo::JSON は最小限かつ緩やかな RFC4627 の実装です。 おそらくは、利用可能な最速の pure-Perl JSON パーサですが、 妥当性検証には利用するべきではありません。
これは Scalar
, Array
, Hash
のような通常の Perl のデータ形式を サポートしますが、bless されたリファレンスはサポートしません。
[1, -2, 3] -> [1, -2, 3]
{"foo": "bar"} -> {foo => 'bar'}
リテラル名は、Mojo::JSON 定数や、類似した Perl 固有の値と相互に変換されます。
true -> Mojo::JSON->true
false -> Mojo::JSON->false
null -> undef
UTF-16 (LE/BE) や UTF-32 (LE/BE) のデコードは透過的に扱われますが、 エンコードでは UTF-8 のみを生成します。
Mojo::JSON は以下の属性を実装します。
my $error = $json->error;
$json = $json->error('Oops!');
パーサエラー。
Mojo::JSON は Mojo::Base の全てのメソッドを継承しており、 以下の新しいメソッドを実装しています。
my $array = $json->decode('[1, 2, 3]');
my $hash = $json->decode('{"foo": "bar"}');
JSON 文字列のデコード。
my $string = $json->encode({foo => 'bar'});
Perl データ構造のエンコード。
my $false = Mojo::JSON->false;
my $false = $json->false;
負値 (Perl が同等の値を持たないため使用されます)。
my $true = Mojo::JSON->true;
my $true = $json->true;
正値 (Perl が同等の値を持たないため使用されます)。
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
(2012/5/28更新)
Mojolicious日本語訳は「Perlゼミ制作」です。