Comment écrire un objet JSON dans un fichier en PowerShell
- Objets personnalisés PowerShell
- Objet JSON PowerShell en chaîne JSON
-
Sauvegarder une chaîne JSON dans un fichier à l’aide de
ConvertTo-Json
etOut-File
-
Sauvegarder une chaîne JSON dans un fichier à l’aide de
ConvertTo-Json
etSet-Content
-
Sauvegarder une chaîne JSON dans un fichier à l’aide de
ConvertTo-Json
etAdd-Content
- Conclusion

PowerShell, un langage de script robuste et polyvalent, fournit des outils puissants pour gérer et manipuler des données. En ce qui concerne la gestion des données JSON (JavaScript Object Notation), PowerShell offre des moyens efficaces de convertir des objets personnalisés en chaînes JSON et de les écrire ensuite dans des fichiers.
Dans cet article, nous examinerons le processus de conversion d’objets PowerShell en chaînes JSON et de leur sauvegarde dans des fichiers à l’aide de divers cmdlets tels que ConvertTo-Json
, Out-File
, Set-Content
et Add-Content
.
Objets personnalisés PowerShell
Le PSCustomObject
est un élément fondamental dans PowerShell utilisé pour définir des objets personnalisés. Un objet personnalisé contient généralement des propriétés et leurs valeurs associées, fournissant un moyen structuré d’organiser des données.
En plus de créer des objets personnalisés à partir de zéro, PowerShell est également compétent dans la gestion et le traitement efficace des objets JSON.
Création d’un objet JSON personnalisé
Commençons par examiner comment créer un objet JSON personnalisé à l’aide d’une structure JSON d’exemple. Nous allons stocker cette structure JSON dans la variable $MyJsonVar
.
$MyJsonVar = @"
{
"ExampleJson":{
"Fruit1":{
"Name":"Apple",
"Price":"`$10.00"
}
}
}
"@
Sortie :
Dans cet exemple, nous avons défini une structure JSON représentant des informations sur des fruits.
Conversion de JSON en objet personnalisé PowerShell
Pour convertir la représentation JSON en un objet personnalisé PowerShell, nous utilisons le cmdlet ConvertFrom-JSON
. Assignons le nouvel objet JSON créé à la variable $MyJsonObject
.
$MyJsonObject = $MyJsonVar | ConvertFrom-Json
Le cmdlet ConvertFrom-JSON
transforme la structure JSON en un PSCustomObject
approprié.
Affichage de l’objet personnalisé PowerShell créé
Maintenant, affichons le PSCustomObject
nouvellement créé, qui correspond à la structure JSON d’origine.
$MyJsonObject
Sortie :
Ces commandes accèdent et affichent les propriétés prix et nom du fruit défini dans l’objet personnalisé. Il a donc été confirmé que nous avons obtenu un objet personnalisé PowerShell approprié appelé $MyJsonObject
.
Objet JSON PowerShell en chaîne JSON
PowerShell offre le cmdlet ConvertTo-Json
, un outil précieux pour convertir un objet personnalisé existant en une chaîne JSON. Ce processus transforme efficacement l’objet en une représentation texte simple au format JSON, qui peut être utilisée ou stockée ultérieurement si nécessaire.
Syntaxe du cmdlet ConvertTo-Json
:
ConvertTo-Json
[-InputObject] <Object>
[-Depth <Int32>]
[-Compress]
[-EnumsAsStrings]
[-AsArray]
[-EscapeHandling <StringEscapeHandling>]
[<CommonParameters>]
Le cmdlet ConvertTo-Json
fournit plusieurs paramètres optionnels pour personnaliser le processus de conversion JSON. Voici une explication de ces paramètres :
-
-InputObject
: Ce paramètre est fondamental, car il désigne l’objet personnalisé qui doit être converti en une chaîne JSON. Vous pouvez transmettre l’objet directement à ce paramètre. -
-Depth
: Ce paramètre crucial vous permet de spécifier le nombre de niveaux dans la chaîne JSON résultante. La profondeur indique combien de niveaux d’objets ou de tableaux imbriqués seront inclus dans la chaîne JSON.Cependant, il doit être utilisé judicieusement, car une mauvaise utilisation peut entraîner une perte de données. La valeur par défaut est fixée à 2.
-
-Compress
: Ce paramètre compresse la sortie JSON en supprimant les espaces et indentations inutiles, ce qui aboutit à une chaîne JSON plus compacte. -
-EnumsAsStrings
: Lorsqu’il est utilisé, ce paramètre représente les valeurs d’énumération sous forme de chaînes dans la sortie JSON, garantissant la compatibilité avec les systèmes qui pourraient ne pas bien gérer les énumérations numériques.
-
-AsArray
: Lorsqu’il est spécifié, ce paramètre formate la sortie en tant que tableau JSON, même si l’objet d’entrée n’est pas un tableau. -
-EscapeHandling
: Ce paramètre permet de personnaliser la manière dont les caractères spéciaux sont échappés dans la chaîne JSON, offrant des options telles queDefault
,EscapeNonAscii
,EscapeHtml
etDoNotEscape
.
Pour démontrer l’utilisation du cmdlet ConvertTo-Json
, considérons l’objet personnalisé de la section précédente ($MyJsonObject
) :
Nous pouvons facilement passer un objet personnalisé au cmdlet ConvertTo-Json
. Nous pouvons envoyer le $MyJsonObject
à travers le pipe (|
) pour transformer l’objet personnalisé en une chaîne JSON.
$MyJsonObject | ConvertTo-Json
Sortie :
Démontrons encore l’utilisation du cmdlet ConvertTo-Json
. Considérons un objet personnalisé nommé $AnotherJsonObject
:
$AnotherJsonObject = @{
Name = "John Doe"
Age = 30
IsActive = $true
Hobbies = @("Reading", "Gardening")
Address = @{
Street = "1234 Elm St"
City = "Anytown"
Country = "USA"
}
}
Pour convertir cet objet en une chaîne JSON et afficher la sortie, utilisez la commande suivante :
$AnotherJsonObject | ConvertTo-Json
La sortie de cette transformation est une chaîne JSON illustrative représentant l’objet personnalisé d’origine.
{
"Name": "John Doe",
"Age": 30,
"IsActive": true,
"Hobbies": [
"Reading",
"Gardening"
],
"Address": {
"Street": "1234 Elm St",
"City": "Anytown",
"Country": "USA"
}
}
Comme nous pouvons le voir, la sortie montre un objet structuré ($AnotherJsonObject
) représentant des informations personnelles telles que le nom, l’âge, le statut d’activité, les passe-temps et les détails d’adresse d’une personne.
Sauvegarder une chaîne JSON dans un fichier à l’aide de ConvertTo-Json
et Out-File
Une fois que vous avez obtenu une chaîne JSON à l’aide du cmdlet ConvertTo-Json
dans PowerShell, la prochaine étape logique est de la sauvegarder dans un fichier pour un usage ultérieur ou un partage. Heureusement, PowerShell fournit plusieurs méthodes pour y parvenir, l’une des plus simples étant l’utilisation de Out-File
.
Le cmdlet Out-File
est un outil fiable pour sauvegarder la chaîne JSON dans un fichier. Voici un exemple illustrant comment réaliser cela :
$MyJsonObject | ConvertTo-Json | Out-File -FilePath "D:\path\to\example.json"
Sortie :
Dans cet exemple, $MyJsonObject
représente la variable contenant la chaîne JSON générée à l’aide de ConvertTo-Json
. Le pipeline (|
) passe alors cette chaîne JSON à Out-File
pour l’écriture dans un fichier.
Le paramètre -FilePath
spécifie le chemin de destination pour la chaîne JSON. Remplacez simplement "D:\path\to\example.json"
par le chemin de fichier souhaité où vous comptez sauvegarder le contenu JSON.
En utilisant Out-File
de cette manière, vous conservez efficacement vos données JSON dans un fichier, les rendant accessibles pour un usage futur ou un partage. Cette technique simple mais puissante est essentielle pour gérer efficacement les données JSON dans un environnement PowerShell.
Sauvegarder une chaîne JSON dans un fichier à l’aide de ConvertTo-Json
et Set-Content
Une autre façon de sauvegarder la chaîne JSON dans un fichier consiste à utiliser le cmdlet Set-Content
. Le cmdlet Set-Content
fournit un moyen simple d’écrire des données dans un fichier, ce qui en fait un choix approprié pour sauvegarder une chaîne JSON sur disque.
L’exemple suivant démontre ce processus :
$MyJsonObject | ConvertTo-Json | Set-Content -Path "D:\path\to\example.json"
Dans cet exemple, $MyJsonObject
est la variable contenant la chaîne JSON générée à l’aide de ConvertTo-Json
. Le pipeline (|
) passe cette chaîne JSON à Set-Content
pour l’écriture dans un fichier.
Le paramètre -Path
spécifie le chemin de destination pour la chaîne JSON. Remplacez simplement "D:\path\to\example.json"
par le chemin de fichier souhaité où vous comptez sauvegarder le contenu JSON.
Sauvegarder une chaîne JSON dans un fichier à l’aide de ConvertTo-Json
et Add-Content
Une autre méthode que nous pouvons utiliser pour sauvegarder une chaîne JSON dans un fichier en PowerShell est le cmdlet Add-Content
, qui permet d’ajouter la chaîne JSON à un fichier existant. L’exemple suivant démontre comment y parvenir :
$MyJsonObject | ConvertTo-Json | Add-Content -Path "D:\path\to\example.json"
Dans cet exemple, $MyJsonObject
représente la variable contenant la chaîne JSON générée à l’aide de ConvertTo-Json
. Le pipeline (|
) passe cette chaîne JSON à Add-Content
pour l’ajout à un fichier spécifié par le paramètre -Path
.
Le paramètre -Path
indique le fichier auquel la chaîne JSON sera ajoutée. Remplacez simplement "D:\path\to\example.json"
par le chemin de fichier souhaité où vous comptez ajouter le contenu JSON.
Le cmdlet Add-Content
offre un moyen pratique d’ajouter ou d’annexer du contenu à un fichier sans écraser les données existantes. Cela est particulièrement utile lors de la gestion de chaînes JSON qui doivent être mises à jour ou étendues au fil du temps.
Conclusion
Cet article a démontré le processus de conversion d’objets PowerShell en chaînes JSON et de leur sauvegarde dans des fichiers à l’aide du cmdlet ConvertTo-Json
, ainsi que d’autres cmdlets de gestion de fichiers comme Out-File
, Set-Content
et Add-Content
.
En tirant parti de ces outils, les utilisateurs peuvent gérer efficacement les données JSON, permettant un traitement, un partage et une intégration fluides avec diverses applications et systèmes.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.