在 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
方法启用缩进和冒号周围的空格。您可以使用 indent
、indent_length
、space_before
和 space_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。
我如何使用 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
方法启用缩进和冒号周围的空格。您可以使用 indent
、indent_length
、space_before
和 space_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。