简单的问题。如何在Mojolicious :: Lite中打开“漂亮”的json渲染?我正在开发一个RESTful API,并希望以更加人性化的格式看待我的输出。
答案 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 docs有pretty
方法。
$json->pretty([$enable])