Json 可以强制布尔解码为1/0吗?

Json 可以强制布尔解码为1/0吗?,json,perl,boolean,decoding,Json,Perl,Boolean,Decoding,包JSON::XS使用JSON::XS::布尔对象表示真/假。是否可以强制将真/假json值解码为1/0 Perl数字 #!/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 } 解码后我想要

包JSON::XS使用JSON::XS::布尔对象表示真/假。是否可以强制将真/假json值解码为1/0 Perl数字

#!/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' => 1,
          'test_false' => 0
        };
原因:在某些情况下,很难预测JSON::XS::Boolean将如何使用SOAP序列化程序或其他序列化程序进行序列化


.

否。这些值是受祝福的对象。它们只能具有JSON::XS::Boolean中允许的值。

为什么要这样做?这些对象在Perl中正确地计算为true和false。您使用的是
转储程序
,您是否尝试过打印
$json->test\u true
$json->test\u false
?它们被正确地字符串化为
1
0
@ChatterOne,即
$json->{test\u true}
$json->{test\u false}
$json
只是一个散列,您不能对其调用方法。我建议您改用它,它兼容(除了
json::XS
中的bug已经修复)并且在各个方面都更好。@Borodin是的,在大多数情况下您不必在意,但在某些情况下您只需要普通值而不需要对象(例如,传递给另一个不需要对象的序列化程序)
$VAR1 = {
          'test_true' => 1,
          'test_false' => 0
        };