2017-06-07 5 views
0

は、私はCSVがそうでPowerShellのマルチレベルjsonからcsvを作成するにはどうすればよいですか?

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

と同じようにフォーマットしたい

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

のように見えるJSON応答を解析しようとしています。 私はPSCustomObjectを作成して、それにSelect-Objectを使ってCSVを生成しようとしましたが、目的の出力が得られませんでした。 マイコード:あなたは本当にだけでなく、CSVでの合計カウントをしたい場合は、ここに一つのことである

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

あなたはちょうど試しましたか?$ json | convertfrom-json?自動的にPSObjectに変換されるはずです。 $ json |コンバーチブルジャンクション| export-csv $ path – thepip3r

+0

私はそれを試しましたが、System.Object []のエントリを持つCSVになります。 – robinhood

+1

ああ...私はJSONで親の配列があると思っています... try: ($ json | convertfrom-json).objects |オブジェクト名、タイプの選択| Export-Csv $ Path – thepip3r

答えて

1

あなたができる:

$psobjarray = ($json | convertfrom-json) 
$psobjarray.objects | Select-Object Name,Type | Export-Csv $Path 
"Total Count: $($psobjarray.totalcount)" | out-file $Path -append 
$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は以下のように見えます
関連する問題