简体   繁体   English

PowerShell无法将JSON转换为CSV

[英]PowerShell failing to convert JSON to CSV

I have spent a bit of time researching how to convert Json to a CSV file using powershell but am failing to have it complete properly. 我花了一些时间研究如何使用Powershell将Json转换为CSV文件,但是未能正确完成。 Below is the syntax I have created: 以下是我创建的语法:

$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

However, when I attempt to execute this, I get an argument exception error: 但是,当我尝试执行此操作时,出现参数异常错误:

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

在此处输入图片说明

Any thoughts as to what I'm doing wrong? 关于我在做什么错有什么想法吗? I've verified my file using JSONLint and it shows verified. 我已经使用JSONLint验证了我的文件,并显示已验证。 Example file can be found at https://api.myjson.com/bins/mo59w . 可以在https://api.myjson.com/bins/mo59w上找到示例文件。 Any help is appreciated! 任何帮助表示赞赏!

Try this. 尝试这个。 I've also attached the output 我还附上了输出

$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

Output 产量 在此处输入图片说明

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM