ConvertFrom-Json
Convertit une chaîne au format JSON en objet personnalisé.
Syntaxe
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
L’applet de commande ConvertFrom-Json
convertit une chaîne au format JSON (JavaScript Object Notation) en objet personnalisé PSCustomObject qui a une propriété pour chaque champ de la chaîne JSON. JSON est couramment utilisé par les sites web pour fournir une représentation textuelle des objets. La norme JSON n’interdit pas l’utilisation qui est interdite avec un PSCustomObject. Par exemple, si la chaîne JSON contient des clés en double, seule la dernière clé est utilisée par cette applet de commande. Consultez d’autres exemples ci-dessous.
Pour générer une chaîne JSON à partir d’un objet, utilisez l’applet de commande ConvertTo-Json
.
Cette applet de commande a été introduite dans PowerShell 3.0.
Note
Cette applet de commande ne prend pas en charge JSON avec des commentaires.
Exemples
Exemple 1 : Convertir un objet DateTime en objet JSON
Cette commande utilise les applets de commande ConvertTo-Json
et ConvertFrom-Json
pour convertir un objet DateTime à partir de l’applet de commande Get-Date
en objet JSON, puis en PSCustomObject.
Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json
DisplayHint : 2
DateTime : Friday, January 13, 2012 8:06:31 PM
Date : 1/13/2012 8:00:00 AM
Day : 13
DayOfWeek : 5
DayOfYear : 13
Hour : 20
Kind : 2
Millisecond : 400
Minute : 6
Month : 1
Second : 31
Ticks : 634620819914009002
TimeOfDay : @{Ticks=723914009002; Days=0; Hours=20; Milliseconds=400; Minutes=6; Seconds=31; TotalDays=0.83786343634490734; TotalHours=20.108722472277776; TotalMilliseconds=72391400.900200009; TotalMinutes=1206.5233483366667;TotalSeconds=72391.4009002}
Year : 2012
L’exemple utilise l’applet de commande Select-Object
pour obtenir toutes les propriétés de l’objet DateTime. Il utilise l’applet de commande ConvertTo-Json
pour convertir l’objet DateTime en chaîne mise en forme en tant qu’objet JSON et l’applet de commande ConvertFrom-Json
pour convertir la chaîne au format JSON en objet PSCustomObject.
Exemple 2 : Obtenir des chaînes JSON à partir d’un service web et les convertir en objets PowerShell
Cette commande utilise l’applet de commande Invoke-WebRequest
pour obtenir des chaînes JSON à partir d’un service web, puis elle utilise l’applet de commande ConvertFrom-Json
pour convertir du contenu JSON en objets pouvant être gérés dans PowerShell.
# Ensures that Invoke-WebRequest uses TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$j = Invoke-WebRequest 'https://api.github.com/repos/PowerShell/PowerShell/issues' | ConvertFrom-Json
Vous pouvez également utiliser l’applet de commande Invoke-RestMethod
, qui convertit automatiquement le contenu JSON en objets.
Exemple 3 : Convertir une chaîne JSON en objet personnalisé
Cet exemple montre comment utiliser l’applet de commande ConvertFrom-Json
pour convertir un fichier JSON en objet personnalisé PowerShell.
Get-Content JsonFile.JSON | ConvertFrom-Json
La commande utilise Get-Content applet de commande pour obtenir les chaînes dans un fichier JSON. Ensuite, il utilise l’opérateur de pipeline pour envoyer la chaîne délimitée à l’applet de commande ConvertFrom-Json
, qui la convertit en objet personnalisé.
Paramètres
-InputObject
Spécifie les chaînes JSON à convertir en objets JSON. Entrez une variable qui contient la chaîne, ou tapez une commande ou une expression qui obtient la chaîne. Vous pouvez également diriger une chaîne vers ConvertFrom-Json
.
Le paramètre InputObject est obligatoire, mais sa valeur peut être une chaîne vide. Lorsque l’objet d’entrée est une chaîne vide, ConvertFrom-Json
ne génère aucune sortie. La valeur InputObject ne peut pas être $null
.
Type: | String |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger une chaîne JSON vers ConvertFrom-Json
.
Sorties
PSCustomObject
Notes
L’applet de commande ConvertFrom-Json
est implémentée à l’aide de la classe JavaScriptSerializer .