如何将Mojo::UserAgent返回的JSON结果以Pretty JSON格式输出?
用Mojo::UserAgent输出格式化JSON(Pretty JSON)
Mojo生态自带完善的JSON处理能力,无需额外安装依赖,直接通过以下步骤实现格式化输出:
- 解析响应为Perl数据结构:利用
$tx->res->json方法,将原始JSON响应体解析成Perl的哈希或数组结构。 - 生成格式化JSON字符串:使用
Mojo::JSON的encode_json函数,传入解析后的数据和{pretty => 1}参数,生成带缩进、换行的格式化JSON。
修改后的完整代码
use Mojo::UserAgent; use Mojo::JSON qw(encode_json); my $ua = Mojo::UserAgent->new; my $tx = $ua->get( $host . '/api/endpoint/streams', { Token => $token, accept => 'application/json', 'Content-Type' => 'application/json' } ); # 解析并格式化输出 if (my $json_data = $tx->res->json) { print encode_json($json_data, {pretty => 1}); } else { warn 'JSON解析失败,原始响应内容:' . $tx->res->body; }
补充说明
$tx->res->json会自动校验响应的JSON格式,若解析失败会返回undef,添加判断可以避免后续报错。encode_json的pretty参数会自动添加默认2空格的缩进和换行,让JSON结构更易读。
内容的提问来源于stack exchange,提问作者dave
相关产品推荐
相关产品推荐

