此问题已经在这里有了答案:
我正在尝试将对象列表导出为CSV,但是我的输出是:
Hd M.d.o. Montagem Eixo Traseiro,“ System.Collections.ArrayList”
对象是:
Class Departamento
{
[String]$nome
[Object]$pessoas
}
因此,第一个是字符串,第二个是ArrayList(Object)。我想知道如何导出我的arrayList,它具有我部门所有人的名字。谢谢。
您应该将对象[Object] $ pessoas转换为字符串或我们的XML或JSON格式,而不是CSV。因为CSV无法显示您想要的对象(CSV只有“一个级别”)。如果您想使用JSON:
#Export
$obj | ConvertTo-Json -Depth 99 | Out-File -FilePath C:\Temp\test.json #-Depth 99 <-- Needed for the ArrayList(Object)
#Import
Get-Content -Path C:\Temp\test.json | ConvertFrom-Json
如果必须使用csv格式,则可以这样做(用-join将列表转换为字符串):
$obj | Select-Object -Property nome, @{n = 'pessoas'; e = {$_.pessoas -join ';'}} | Export-Csv -Path C:\Temp\test.csv