Écrire un objet JSON dans un fichier dans PowerShell

Migel Hewage Nimesha 30 janvier 2023
  1. Objets personnalisés PowerShell
  2. Objet PowerShell JSON vers chaîne JSON
  3. Enregistrer la chaîne JSON dans un fichier
Écrire un objet JSON dans un fichier dans PowerShell

PowerShell est un langage objet très puissant qui peut être utilisé pour créer des données structurées. Par conséquent, il est plus facile de travailler avec du texte brut.

Objets personnalisés PowerShell

Le PSCustomObject est la base des objets PowerShell. Il contient des propriétés et des valeurs.

Par conséquent, PowerShell peut également gérer les objets JSON.

Créons un objet personnalisé JSON à partir d’un exemple JSON. Nous avons attribué un JSON à la variable $MyJsonVar.

$MyJsonVar = @"
 {
   "ExampleJson":{
     "Fruit1":{
       "Name":"Apple",
       "Price":"`$10.00"
     }
  }
 }
"@

Production:

Objets personnalisés PowerShell 1

Nous devons créer l’objet JSON réel à l’aide de l’applet de commande ConvertFrom-JSON. Cela va créer le vrai PSCustomObject.

Affectons l’objet JSON nouvellement créé à la variable $MyJsonObject.

$MyJsonObject = $MyJsonVar | ConvertFrom-Json

Affichez le PSCustomObject nouvellement créé, un objet JSON.

$MyJsonObject

Production:

Objets personnalisés PowerShell 2

Vous pouvez accéder à l’objet JSON par ses propriétés.

$MyJsonObject.ExampleJson.Fruit1.Price
$MyJsonObject.ExampleJson.Fruit1.Name

Production:

Objets personnalisés PowerShell 3

Ainsi, il a été confirmé que nous avons obtenu un objet personnalisé PowerShell approprié appelé $MyJsonObject.

Objet PowerShell JSON vers chaîne JSON

L’applet de commande ConvertTo-Json peut convertir un objet personnalisé existant en une chaîne JSON. Cela va être du texte brut au format JSON.

Syntaxe:

ConvertTo-Json
              [-InputObject] <Object>
              [-Depth <Int32>]
              [-Compress]
              [-EnumsAsStrings]
              [-AsArray]
              [-EscapeHandling <StringEscapeHandling>]
              [<CommonParameters>]

Tous les paramètres ci-dessus sont facultatifs pour l’applet de commande ConvertTo-Json.

Le paramètre -Depth peut spécifier le nombre de niveaux dans la chaîne JSON. C’est un paramètre important et doit être utilisé avec beaucoup de précautions.

L’utilisation erronée de ce paramètre peut entraîner une perte de données. La valeur par défaut est 2.

Le paramètre -InputObject spécifie l’objet personnalisé qui doit être converti en une chaîne JSON. Nous pouvons facilement diriger un objet personnalisé vers l’applet de commande ConvertTo-Json.

Nous pouvons envoyer le $MyJsonObject via le tuyau (|) pour transformer l’objet personnalisé en une chaîne JSON.

$MyJsonObject | ConvertTo-Json

Production:

Objet JSON en chaîne JSON

Enregistrer la chaîne JSON dans un fichier

Il est possible d’enregistrer une chaîne JSON dans un fichier à l’aide de PowerShell. Nous pouvons diriger la sortie de la chaîne JSON vers l’applet de commande Out-File.

Il est possible de spécifier le chemin où nous devons créer le fichier .json.

$MyJsonObject | ConvertTo-Json | Out-File "D:\misc\example.json"

Le chemin "D\misc\example.json" peut varier. Cela créera un fichier example.json dans la structure de répertoires donnée.

Production:

Enregistrement de la chaîne JSON dans un fichier

L’objet personnalisé JSON a été enregistré dans un fichier example.json au format JSON.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

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.