Ich habe ein Beispiel im JSON-Format hier , das sich gut umwandelt, wenn ich Folgendes verwende: https://konklone.io/json/
Ich habe den folgenden Code in PowerShell ausprobiert:
(Get-Content -Path $pathToJsonFile | ConvertFrom-Json)
| ConvertTo-Csv -NoTypeInformation
| Set-Content $pathToOutputFile
Aber das einzige Ergebnis, das ich bekomme, ist folgendes:
{"totalCount":19,"resultCount":19,"hasMore":false,"results":
Wie kann ich das richtig in PowerShell konvertieren?
Wenn Sie nur (Get-Content -Path $pathToJsonFile) | ConvertFrom-Json
betrachten, sieht es so aus, als ob der Rest der JSON in eine results
-Eigenschaft wechselt, sodass wir das gewünschte Ergebnis erzielen können, indem Sie Folgendes tun:
((Get-Content -Path $pathToJsonFile) | ConvertFrom-Json).results |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
Zu Ihrer Information können Sie ConvertTo-Csv
und Set-Content
in einem Zug mit Export-CSV
ausführen:
((Get-Content -Path $pathToJsonFile) | ConvertFrom-Json).results |
Export-CSV $pathToOutputFile -NoTypeInformation
Sie müssen die results
-Eigenschaft in Ihrer CSV mit dem Select-Object
-Cmdlet zusammen mit dem -expand
-Parameter auswählen:
Get-Content -Path $pathToJsonFile |
ConvertFrom-Json |
Select-Object -expand results |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
Ich erhielt meinen Json von einem REST - Web-API und stellte fest, dass Folgendes funktioniert:
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