例えば、こんなスクリプトがあったとすると、
use JSON;
use Data::Dumper;
my $str ='{"boolean_value":true}';
my $hash_data = from_json( $str );
my $str_data = encode_json( $hash_data );
print Dumper $hash_data;
print $str_data;
実行結果はこうなります。
$VAR1 = {
'boolean_value' => bless( do{(my $o = 1)}, 'JSON::PP::Boolean' )
};
{"boolean_value":true}
Mojoliciousで$self->render( json => $hash_data );を実行すると真偽値がそのまま出力されそうな気がしますが、残念ながら{“boolean_value”:”1″}が返却されてしまいます。
真偽値がJSON::XS::Booleanだったときは大丈夫だったのでそのまま行けると思っていたのですがだめでした。
無理して使わない理由もないので、Mojo::JSONを使用するように修正しました。