json - PowerShell 无法将 JSON 转换为 CSV
问题描述
我花了一些时间研究如何使用 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:传入的数组无效,应为“]”。(1): [ 在行:1 字符:69 + 获取内容“C:\OrderLinQ\TESTING\IN\CatalogsRetrieved\test.json”| 转换自- ... +~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [ConvertFrom-Json], ArgumentException + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.ConvertFromJsonCommand
关于我做错了什么有什么想法吗?我已经使用 JSONLint 验证了我的文件,它显示已验证。示例文件可以在https://api.myjson.com/bins/mo59w找到。任何帮助表示赞赏!
解决方案
尝试这个。我还附上了输出
$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
输出
推荐阅读
- python - 如何将网络抓取数据连接到数据库?
- c# - 使用c#查找字符串并将其替换为word文档中的HTML内容
- php - Laravel 5.8:如何将两个争论传递给 Event & Listener
- java - 从 Parcelable 类中读取和写入 java.util.ArrayList
- python - 如何让我的烧瓶应用程序在特定时间发送 API 发布请求,而无需与网站本身交互
- html - 即使在设置了必需的属性后也没有得到警报
- rabbitmq - 使用 Pika 实现消费者线程
- java - 现在告诉我,我研究过 java 使用按值传递,但我在这里有点困惑
- python-3.x - Python:从字符串动态获取具有泛型类型参数的类型
- java - Struts 2中prepare方法中的异常处理