我已将以下JSON文件转换为powershell表示对象。
{
"computer": [
{
"children": [
{
"children": [ {
"children": [ {
"path": "T:\Dropbox\kvaki.html",
"name": "kvaki",
"type": "url",
"url": "http://example.com"
} ],
"path": "T:\Dropbox\",
"name": "Njusha",
"type": "folder"
}, {
"path": "T:\Dropbox\Europa.html",
"name": "Europa",
"type": "url",
"url": "http://example.com"
}, {
"path": "T:\Dropbox\math.html",
"name": "math",
"type": "url",
"url": "http://example.com"
} ],
"path": "T:\Dropbox\",
"name": "Money",
"type": "folder"
}
],
"full_path_on_file_sys": "T:\Dropbox\"
}
]
}
在使用powershell表示进行一些计算之后,我想将其作为JSON保存到文件中。
但是命令$jsonRepresentation | ConvertTo-Json | Out-File "D:\dummy_path\file.json"
以这种方式保存它
{
"computer": [
{
"children": " ",
"full_path_on_file_sys": "T:\Dropbox\"
}
]
}
问题:如何正确保存复杂的PowerShell JSON表示?
答案 0 :(得分:52)
ConvertTo-Json的-depth参数解决了这个问题。
$jsonRepresentation | ConvertTo-Json -depth 100 | Out-File "D:\dummy_path\file.json"
答案 1 :(得分:8)
只需将其传递给Set-Content或Out-File:
Get-Process powershell |
ConvertTo-Json |
Set-Content json.txt
答案 2 :(得分:1)
如果您遇到PowerShell版本2,the JSON module of Joel Bennett from the 'PowerShell Code Repository'可能会有所帮助。
答案 3 :(得分:0)
如果要同时查看输出并将其保存到文件,可以使用tee命令。
Get-Process powershell | ConvertTo-Json | Tee-Object json.txt
答案 4 :(得分:0)
$json.properties.metadata | ConvertTo-Json -Compress
答案 5 :(得分:-1)
1)以下命令可用于将json转换为CSV
示例:
Get-Content package.json | Out-String | ConvertFrom-Json | Select parameter1, parameter2, parameter3 | ConvertTo-Csv -NoTypeInformation | Format-Table >> C:\JenkinsWorkspace\Result.csv
Get-Content:类似于Linux中的“ cat”命令,它将获取文件“ package.json”的所有数据并从Json转换(使用ConvertFrom-Json函数),仅提取所需参数的详细信息,然后进行转换使用“ ConvertTo-Csv”功能将其转换为CSV,而无需任何不需要的类型标题并将其格式化为表格。
2)也可以将上述结果格式化为适当的csv,以Excel格式查看,没有任何重复,也可以使用以下命令进行“文本到列”转换:
Import-Csv "C:\Result.csv" -delimiter "," | Sort-Object _from -Unique | Export-csv "C:\FINAL_REPORT_$date.csv"