4

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

4

3 回答 3

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.

于 2015-08-18T19:23:45.057 回答
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/

于 2015-07-17T11:15:00.533 回答
0

JSON::PPpretty方法。

$json->pretty([$enable])
于 2015-07-17T04:49:14.033 回答