You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Perl脚本生成指定结构的JSON输出?

解决Perl脚本生成目标JSON结构的方案

核心思路

将原服务器对象数组转换为以instance为顶级键的哈希结构:把每个服务器的名称作为instance下的子键,对应值仅存储IP和操作系统信息。

代码示例

use JSON;
use strict;
use warnings;

# 模拟从外部源获取的服务器数据数组
my @servers = (
    { server_name => 'server1', ip => '192.168.1.1', os => 'Ubuntu 22.04' },
    { server_name => 'server2', ip => '192.168.1.2', os => 'CentOS 7' },
);

# 构建目标JSON对应的哈希结构
my %target_data;
foreach my $server (@servers) {
    # 以服务器名为键,存储IP和OS信息
    $target_data{instance}{$server->{server_name}} = {
        ip => $server->{ip},
        os => $server->{os}
    };
}

# 输出压缩格式JSON(如需可读格式化版本,改用注释里的写法)
print encode_json(\%target_data);
# print JSON->new->utf8->pretty->encode(\%target_data);

关键注意事项

  • 确保server_name字段无重复,否则后续同名称服务器会覆盖之前的条目
  • 如果外部源返回的字段名和示例不同(比如不是server_name),要对应修改哈希键名
  • 启用strict和warnings可提前发现变量拼写、未定义值等问题

内容的提问来源于stack exchange,提问作者Gerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:56:06