使用Mojolicious发布JSON true值

smi*_*ith 0 perl json mojolicious mojolicious-lite

我试图发布以下JSON Mojo::UserAgent

use Mojo::UserAgent;

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

我收到一个错误

"严格的潜艇"不允许使用Bareword"JSON :: true"

但是如果我将它设置为True它则被解释为字符串而不是JSON 值.

知道如何发布JSON 值吗?

Mat*_*cob 5

您可以使用Mojo :: JSON :: true和Mojo :: JSON :: false作为相应的JSON值.如果需要,您还可以使用标量引用\1为true和\0false.Perl undef将转换为JSON null.

来自Mojo :: JSON文档:

文字名称将被转换为Mojo :: JSON常量或类似的本机Perl值.

true  -> Mojo::JSON->true
false -> Mojo::JSON->false
null  -> undef
Run Code Online (Sandbox Code Playgroud)

此外,标量引用将用于生成布尔值,具体取决于它们的值是真还是假.

\1 -> true
\0 -> false
Run Code Online (Sandbox Code Playgroud)