我无法理解如何选择两个"属性" json中的每个对象,并将它们输出到csv中。这两个属性是" name"和" jobtitle"我认为应该有一种方法来提取它们。
$employees= ConvertFrom-Json $json
foreach ($person in $employees.information) {
# $person.name $person.jobtitle
}
答案 0 :(得分:2)
不需要循环,这应该是面包和零售的PowerShell领域。将集合提供给管道,使用Select-Object
选择您关注的属性,然后将管道提供给处理CSV标题行的Export-CSV
,将它们放在同一行,将逗号括在他们,引用等等。
$employees = ConvertFrom-Json $json
$employees.information | Select-Object name, jobtitle | Export-CSV -Path out.csv -NoTypeInformation
唯一奇怪的是-NoTypeInformation
,它阻止它为Integer / String / etc设置特定于PowerShell的标记。 CSV中的类型,Excel(例如)将无法读取的内容。
e.g。具有X,Y,Z属性的三个对象 - 仅选择X和Z,并将它们设为CSV:
PS C:\> $Things = @(
[PSCustomObject]@{X=1; Y=2; Z=3}
,[PSCustomObject]@{X=4; Y=5; Z=6}
,[PSCustomObject]@{X=7; Y=8; Z=9}
)
$Things | Select-Object X,Z | ConvertTo-Csv -NoTypeInformation
"X","Z"
"1","3"
"4","6"
"7","9"