Публикация истинного значения JSON с Mojolicious

Я пытаюсь опубликовать следующий JSON с Mojo::UserAgent

use Mojo::UserAgent;

my $ua = Mojo::UserAgent->new;
my $ip = ...
$mojo->post( 'https://$ip:443/query' => json =>  { value=> True, Query => ... } );

Я получаю ошибку

Bareword "JSON::true" не допускается, пока "строгие сабы"

но если я установлю это True оно интерпретируется как строка, а не как истинное значение JSON.

Любая идея, как опубликовать истинное значение JSON?

1 ответ

Решение

Вы можете использовать Mojo::JSON::true и Mojo::JSON::false для соответствующих значений JSON. Вы также можете использовать скалярные ссылки \1 для истинного и \0 за ложь, если хочешь. Perl undef будет преобразован в ноль JSON.

Из документов Mojo:: JSON:

Литеральные имена будут переводиться в константы Mojo:: JSON или из них или аналогичное значение Perl.

true  -> Mojo::JSON->true
false -> Mojo::JSON->false
null  -> undef

Кроме того, скалярные ссылки будут использоваться для генерации логических значений в зависимости от того, являются ли их значения истинными или ложными.

\1 -> true
\0 -> false
Другие вопросы по тегам