繁体   English   中英

如何在Powershell中从多层JSON制作CSV?

[英]How can I craft a csv from multi level json in powershell?

我正在尝试解析一个看起来像的JSON响应

{
"Objects":  [
                     {
                         "Name":  "FirstName",
                         "Type":  "XXXX",
                     },
                     {
                         "Name":  "SecondName",
                         "Type":  "YYYY",
                     },
                     {
                     "Name":  "ThirdName",
                         "Type":  "ZZZZ",
                     },
            ],
 "TotalCount":  127
 }

我想要CSV格式,例如

"Name","Type"
"FirstName","XXXX"
"SecondName","YYYY"

等等。 我尝试创建PSCustomObject并将其与Select-Object一起使用以生成CSV,但它没有提供所需的输出。 我的代码:

$report=$null
foreach($obj in $json){
$item=$obj | ConvertFrom-Json
$report=[pscustomobject]@{
Name=($item.Objects.Name | Out-String).Trim()
Type=($item.Objects.Type | Out-String).Trim()
}
$report | Select-Object Name,Type | Export-Csv "PATH"`

给我的CSV如下所示:

"Name","Type"
"FirstName
 SecondName
 ThirdName",
"XXXX
 YYYY
 ZZZZ"

如果您也确实想要csv中的总数,则可以执行以下操作:

$psobjarray = ($json | convertfrom-json)
$psobjarray.objects | Select-Object Name,Type | Export-Csv $Path
"Total Count: $($psobjarray.totalcount)" | out-file $Path -append

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM