使用 Mojolicious 发布 JSON 真实值

Posting a JSON true value with Mojolicious

我正在尝试 post 以下 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" not allowed while "strict subs"

但是如果我将它设置为 True 它被解释为一个字符串而不是 JSON true 值。

知道如何 post JSON true 值吗?

您可以使用 Mojo::JSON::true 和 Mojo::JSON::false 来获得相应的 JSON 值。如果需要,您还可以将标量引用 </code> 用于 true,将 <code>[=13=] 用于 false。 Perl undef 将转换为 JSON null。

来自Mojo::JSON docs

Literal names will be translated to and from Mojo::JSON constants or a similar native Perl value.

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

In addition scalar references will be used to generate booleans, based on if their values are true or false.

 -> true
[=11=] -> false