一、参考资料
How to convert JSON file to CSV file using PowerShell
二、问题描述
将json文件中的数组对象转换为csv文件。
三、json样例文件
{"menu": { "id": "file", "value": "File", "popup": { "menuitem": [ {"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"} ] } }}
四、一句话命令
PS D:\jsontocvs>Get-Content .\menu.json | ConvertFrom-Json | select -ExpandProperty menu | select -ExpandProperty popup | select -expandproperty menuitem | select -Property onclick,value | ConvertTo-Csv | Out-File menu.csv
样例文件命名为:menu.json
Get-Content 获取json文件内容,"|"代表管道,意思是将当前命令结果传递到下个命令,ConvertFrom-Json形成内部对象,select用ExpandProperty参数选择menu属性对应的复杂对象,再依次选择popup、menuitem复杂对象,最终选择onclick,value属性(用于展示可以调整两者输出的顺序),ConvertTo-Csv转换为Csv格式,Out-File 输出到文件menu.csv。结果如下:
"onclick","value"
"CreateNewDoc()","New"
"OpenDoc()","Open"
"CloseDoc()","Close"