将嵌套JSON文件中的数据连接到CSV



我得到了一个包含服务器信息的JSON文件,并试图将输出连接到一个输出中。

这是我得到的输出:

IP10.3.0.100[/tr>10.3.0.101
服务器名称 操作系统 服务
DC01 Windows Server 2016 域控制器 10.2.0.4
WEB01 Windows Server 2016 Web服务器
WEB01 Windows Server 2016 Web服务器

一个简化的例子:

@'
[
{
"Server Name": "DC01",
"Operating System": "Windows Server 2016",
"Service": "Domain Controller",
"IPs": [
{
"IP": "10.2.0.4"
}
]
},
{
"Server Name": "WEB01",
"Operating System": "Windows Server 2016",
"Service": "Web Server",
"IPs": [
{
"IP": "10.3.0.100"
},
{
"IP": "10.3.0.101"
}
]
}
]
'@ | ConvertFrom-Json |
ForEach-Object {
$_.IPs = $_.IPs.IP -join ', '
$_ # Output the modified object.
} | 
ConvertTo-Csv  # Replace this with your Export-Csv call

以上收益率:

"Server Name","Operating System","Service","IPs"
"DC01","Windows Server 2016","Domain Controller","10.2.0.4"
"WEB01","Windows Server 2016","Web Server","10.3.0.100, 10.3.0.101"
  • 由于您不更改属性的名称和数量,因此可以直接修改ConvertFrom-Json将JSON解析为的每个输入对象。

  • $_.IPs.Ip使用成员访问枚举来提取存储在$_.IPs中的对象数组中包含的所有IP地址,然后将这些地址与', '连接以形成单个字符串,并将其分配回.IPs属性。

相关内容

  • 没有找到相关文章

最新更新