输出具有特定格式/信息的csv

时间:2016-09-14 02:59:32

标签: json powershell csv

我无法理解如何选择两个"属性" json中的每个对象,并将它们输出到csv中。这两个属性是" name"和" jobtitle"我认为应该有一种方法来提取它们。

$employees= ConvertFrom-Json $json
foreach ($person in $employees.information) {
    # $person.name $person.jobtitle
}

1 个答案:

答案 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"