我花了一些时间研究如何使用Powershell将Json转换为CSV文件,但是未能正确完成。以下是我创建的语法:
$pathToOutputFile = "C:\OrderLinQ\TESTING\IN\CatalogsRetrieved\test.txt"
$pathToJsonFile = "C:\OrderLinQ\TESTING\IN\CatalogsRetrieved\test.json"
Get-Content -Path $pathToJsonFile |
ConvertFrom-Json |
ConvertTo-Csv -NoTypeInformation |
Set-Content $pathToOutputFile
但是,当我尝试执行此操作时,出现参数异常错误:
ConvertFrom-Json : Invalid array passed in, ']' expected. (1): [ At line:1 char:69 + Get-Content "C:\OrderLinQ\TESTING\IN\CatalogsRetrieved\test.json" | ConvertFrom- ... + ~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertFrom-Json], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
对我在做什么错有任何想法吗?我已经使用JSONLint验证了我的文件,并显示已验证。示例文件位于https://api.myjson.com/bins/mo59w。任何帮助表示赞赏!
答案 0 :(得分:0)
尝试一下。我还附上了输出
$pathToOutputFile = "D:\output.csv"
$pathToJsonFile = "D:\test.json"
$json = Get-Content -Path $pathToJsonFile
function ConvertFrom-JsonToCsv {
param(
[Parameter(ValueFromPipeline)]
$json
)
Process {
($json | ConvertFrom-Json) | ConvertTo-Csv -NoTypeInformation
}
}
ConvertFrom-JsonToCsv $json | Set-Content $pathToOutputFile