JSON形式のサンプル here があります。これは、次のようなものを使用すると正常に変換されます。 https://konklone.io/json/
PowerShellで次のコードを試しました。
(Get-Content -Path $pathToJsonFile | ConvertFrom-Json)
| ConvertTo-Csv -NoTypeInformation
| Set-Content $pathToOutputFile
しかし、私が得る唯一の結果はこれです:
{"totalCount":19,"resultCount":19,"hasMore":false,"results":
PowerShellでこれを正しく変換するにはどうすればよいですか?
ただ(Get-Content -Path $pathToJsonFile) | ConvertFrom-Json
JSONの残りの部分がresults
プロパティに送られているように見えるので、次のようにすると、必要な結果を得ることができます。
((Get-Content -Path $pathToJsonFile) | ConvertFrom-Json).results |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
参考までにConvertTo-Csv
およびSet-Content
Export-CSV
:
((Get-Content -Path $pathToJsonFile) | ConvertFrom-Json).results |
Export-CSV $pathToOutputFile -NoTypeInformation
Select-Object
コマンドレットと-expand
パラメーターを使用して、CSV内でresults
プロパティを選択する必要があります。
Get-Content -Path $pathToJsonFile |
ConvertFrom-Json |
Select-Object -expand results |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
私はjsonをREST web apiから取得していましたが、次のように動作することがわかりました。
Invoke-WebRequest -method GET -uri $RemoteHost -Headers $headers
| ConvertFrom-Json
| Select-Object -ExpandProperty <Name of object in json>
| ConvertTo-Csv -NoTypeInformation
| Set-Content $pathToOutputFile
I end up with a perfectly formatted csv file