在 Perl 中解码 JSON。 JSON 输出为多行

Decoding JSON in Perl. JSON output as multiple lines

我如何使用 perl 处理 JSON,以便输出多行而不是一行作为一个结构?

my $json_string = '{"status":"success","answer":{"status":"success","result":{"full_fqdn":"example.com","result":"blablabla","php_version":"8.0","cgi":"disabled"}}}';

我想要得到与此输出类似的结果:

"status": "success",
"answer": {
    "status": "success",
    "result": {
        "full_fqdn": "example.com",
        "result": "blablabla",
        "php_version": "8.0",
        "cgi": "disabled"
    }
}

我不太明白如何正确使用 JSON 以这种方式转换输出。谢谢!

JSON::PP是一个核心模块。 pretty 方法启用缩进和冒号周围的空格。您可以使用 indentindent_lengthspace_beforespace_after 控制详细信息。

#!/usr/bin/perl
use warnings;
use strict;

use JSON::PP;

my $json_string = '{"status":"success","answer":{"status":"success","result":{"full_fqdn":"example.com","result":"blablabla","php_version":"8.0","cgi":"disabled"}}}';

my $j = 'JSON::PP'->new->pretty;
print $j->encode($j->decode($json_string));

如果您需要更快的处理速度,请从 CPAN 安装 Cpanel::JSON::XS