В Perl проверка json-декодированного логического значения

Декодированные логические элементы 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;

Вывод:

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

Из Документация JSON.pm Я знаю о следующих трех методах:

  • JSON:: is_bool
  • JSON:: истинная
  • JSON:: ложь

Однако по какой-то глупой причине я не знаю, как определить, является ли значение "boolean_field" в $decoded_json истинным или ложным.

(Извините за самый простой вопрос, это заставило меня затаиться!)

Ответы

Ответ 1

Это будет правдивое значение в Perl. Просто обращайтесь к нему как обычно.

print 'true' if $decoded_json->{'boolean_field'};