如何在Mojolicious :: Lite中启用“漂亮”的JSON渲染?

时间:2015-07-17 00:32:54

标签: perl mojolicious-lite

简单的问题。如何在Mojolicious :: Lite中打开“漂亮”的json渲染?我正在开发一个RESTful API,并希望以更加人性化的格式看待我的输出。

3 个答案:

答案 0 :(得分:3)

您可以在启动方法中覆盖默认的JSON渲染器。

最小的例子:

use JSON::XS;
our $json = JSON::XS->new->utf8->pretty;

sub startup {
  my $self = shift;
  ...
  $self->app->renderer->add_handler(json => sub {
      ${$_[2]} = $json->encode($_[3]{json});
  });
}

默认处理程序在Mojolicious / Renderer.pm中定义并使用Mojo::JSON::encode_json

答案 1 :(得分:2)

Mojo::JSON声称是RFC完整的简约JSON实现。它没有实现自动缩进/使输出漂亮。

您最好的选择是使用支持该功能的浏览器(或其他客户端),例如SoapUI。有像JSONView for Chrome这样的浏览器插件。

您也可以滚动自己的客户端并使用其中一个JSON实现,例如JSON::MaybeXS

然后还有JSON模块附带的命令行实用程序json_pp。默认情况下它会打印出来。您可以像这样将curl的输出传递给它:

$ curl -s -H "Accept: application/json" http://www.json-generator.com/api/json/get/ckUMuWrjLS?indent=0 -- | json_pp 

curl的-s选项会使其状态输出静音。

上面的JSON来源:http://www.json-generator.com/

答案 2 :(得分:0)

mongo docspretty方法。

$json->pretty([$enable])