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