3
パッケージJSON :: XSはJSON :: XS :: Booleanオブジェクトを使用してtrue/falseを表します。 true/false json値を1/0 Perl数としてデコードすることは強制できますか?Perl:JSON :: XSブール値のデコードを1/0として強制できますか?
#!/usr/bin/env perl
use JSON::XS;
use Data::Dumper;
my $json = decode_json(join('', <DATA>));
print Dumper $json;
__DATA__
{
"test_true": true,
"test_false": false
}
出力:
$VAR1 = {
'test_true' => bless(do{\(my $o = 1)}, 'JSON::XS::Boolean'),
'test_false' => bless(do{\(my $o = 0)}, 'JSON::XS::Boolean')
};
私はdecode_json後にこのような何かをしたい:
$VAR1 = {
'test_true' => 1,
'test_false' => 0
};
理由:いくつかのケースでは、それがどのようにJSONを予測するのは難しい:: XS ::ブールます例えば、SOAPシリアライザなどでシリアライズすることができます。
なぜそれをしたいですか?これらのオブジェクトはPerl内で真と偽と正しく評価されます。 – Borodin
あなたは 'Dumper'を使っています。' $ json-> test_true'と '$ json-> test_false'を印刷してみましたか?それらは '$ json - > {test_true}'と '$ json - > {test_false}'となる '1'と' 0' – ChatterOne
@ChatterOneに正しくストリングされます。 '$ json'はちょうどハッシュなので、メソッドを呼び出すことはできません。 – simbabque