J'ai converti le fichier JSON suivant en objet de représentation 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\"
}
]
}
Après avoir fait quelques calculs avec une représentation Powershell, je voudrais l’enregistrer dans un fichier JSON. Mais la commande $jsonRepresentation | ConvertTo-Json | Out-File "D:\dummy_path\file.json"
l'enregistre de cette façon
{
"computer": [
{
"children": " ",
"full_path_on_file_sys": "T:\Dropbox\"
}
]
}
Question: comment réaliser une sauvegarde correcte de la représentation JS PowerShell complexe?
L'argument -depth de ConvertTo-Json résout le problème.
$jsonRepresentation | ConvertTo-Json -depth 100 | Out-File "D:\dummy_path\file.json"
Dirigez-le simplement vers Set-Content ou Out-File:
Get-Process powershell |
ConvertTo-Json |
Set-Content json.txt
si vous êtes coincé avec PowerShell version 2, le module JSON de Joel Bennett du «référentiel de code PowerShell» pourrait vous aider.
$ json.properties.metadata | ConvertTo-Json -Compress
Si vous souhaitez afficher le résultat et le sauvegarder dans un fichier, vous pouvez diriger la commande tee.
Get-Process powershell | ConvertTo-Json | Tee-Object json.txt