In Perl, prüfen eines json-dekodierten booleschen Wert

JSON-dekodierten Boolesche Werte sind Objekte:

#!/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;

Ausgabe:

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

Aus der JSON.pm-Dokumentation weiß ich über die folgenden drei Methoden:

  • JSON::is_bool
  • JSON::true
  • JSON: false:

Jedoch für einige dumme Grund, warum ich nicht wissen, wie um zu bestimmen, ob der Wert von 'boolean_field' in $decoded_json ist true oder false.

(Sorry für die sehr einfache Frage; es ist gewesen fahrend mich bekloppt!)

  • Ein Teil der Verwirrung kommt wohl von Perl selbst - Perl nicht haben, Boolesche Typen in der Sprache. Es hat nur truthiness. Bei der Auswahl einer Sprache für Projekte, das ist eine Sache, zu berücksichtigen, vor allem für die Verbraucher von JSON-APIs.
InformationsquelleAutor vlee | 2011-07-22
Schreibe einen Kommentar