3
패키지 JSON :: XS는 JSON :: XS :: Boolean 객체를 사용하여 true/false를 나타냅니다. true/false json 값을 1/0 Perl 숫자로 디코딩하도록 강제 할 수 있습니까?Perl : JSON :: XS 부울 디코딩을 1/0으로 강제 할 수 있습니까?
#!/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
};
이유 : 경우에 따라서는 예측하기 어려운 방법 JSON :: XS :: 부울 것 예를 들어, SOAP 직렬 자 또는 다른 직렬화 자로 직렬화 할 수 있습니다.
왜 그렇게하고 싶습니까? 이러한 객체는 Perl에서 true 및 false로 올바르게 평가됩니다. – Borodin
'Dumper'를 사용하고 있습니다.'$ json-> test_true'와'$ json-> test_false' 만 출력 해 보셨습니까? 그것들은'$ json -> {test_true}'와'$ json -> {test_false}'가 될'1''과'0' – ChatterOne
@ChatterOne로 올바르게 문자열 화됩니다. '$ json'은 단지 해쉬 일뿐입니다. 여러분은 그것에 대한 메소드를 호출 할 수 없습니다. – simbabque