在Perl中,检查json解码的布尔值

vle*_*lee 15 perl json boolean

解码的JSON布尔值是对象:

#!/usr/bin/env perl

use strict;
use warnings;

use Data::Dumper;
use JSON;

my $json_string = '{"boolean_field":true}';
my $decoded_json = from_json $json_string;

print Dumper $decoded_json;
Run Code Online (Sandbox Code Playgroud)

输出:

$VAR1 = {
          'boolean_field' => bless( do{\(my $o = 1)}, 'JSON::XS::Boolean' )
        };
Run Code Online (Sandbox Code Playgroud)

JSON.pm文档中我了解了以下三种方法:

  • JSON :: is_bool
  • JSON ::真
  • JSON ::假

但是,由于某些愚蠢的原因,我不知道如何确定'boolean_field'的值$decoded_json是真还是假.

(对不起,这是一个非常基本的问题;它一直让我感到沮丧!)

Que*_*tin 15

它在Perl中是一个真正的价值.只是正常访问它.

print 'true' if $decoded_json->{'boolean_field'};
Run Code Online (Sandbox Code Playgroud)