Perl:JSON :: XS是否可以强制布尔解码为1/0?

时间:2017-11-13 12:59:56

标签: json perl boolean decoding

包JSON :: XS使用JSON :: XS :: Boolean对象来表示true / false。是否可以强制解码真/假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' => 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
        };

原因:在某些情况下,很难预测如何使用SOAP序列化程序或其他程序序列化JSON :: XS :: Boolean。

PerlMonks discussion

1 个答案:

答案 0 :(得分:3)

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