0

我正在使用 powershell 尝试将 Json 转换为 csv。我有想要转换为 CSV 的波纹管 Json 文件。但是由于某种原因,当我在下面运行我的代码时:

(Get-Content $pathToJsonFile -Raw | ConvertFrom-Json) | Select * | export-CSV $pathToOutputFile -NoTypeInformation 

我得到这个:

主机 ips System.Object[] System.Object[]

这是 json 文件的样子:

{
    "hosts": [
        "myserver01",
        "myserver02",
        "myserver03",
        "myserver04",
        "myserver05"
    ],
    "ips": [
        "10.100.0.10",
        "10.111.11.111",
        "10.122.2.22",
        "100.22.111.111",
        "10.111.222.333"
    ]
}

我希望结果看起来像这样

在此处输入图像描述

请帮忙。在过去的几个小时里,我已经对此进行了调查。我不太擅长powershell。这个怎么做?

谢谢

4

1 回答 1

1

像这样?我假设第一个主机使用第一个 ip,依此类推。

$a = cat file.json | convertfrom-json

0..($a.hosts.count-1) | 
foreach { [pscustomobject]@{hosts = $a.hosts[$_]; ips = $a.ips[$_]} } | 
convertto-csv


"hosts","ips"
"myserver01","10.100.0.10"
"myserver02","10.111.11.111"
"myserver03","10.122.2.22"
"myserver04","100.22.111.111"
"myserver05","10.111.222.333"
于 2020-07-31T02:42:23.187 回答