我有一个示例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中正确转换?
答案 0 :(得分:10)
通过查看(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
答案 1 :(得分:5)
您必须使用results
cmdlet和Select-Object
参数选择CSV中的-expand
媒体资源:
Get-Content -Path $pathToJsonFile |
ConvertFrom-Json |
Select-Object -expand results |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
答案 2 :(得分:1)
我从REST web api获取了json并发现以下工作:
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