ConvertFrom-Json
Convertit une chaîne au format JSON en objet personnalisé.
Syntaxe
Default (Par défaut)
ConvertFrom-Json
[-InputObject] <String>
[<CommonParameters>]
Description
L’applet de commande ConvertFrom-Json convertit une chaîne au format JSON (JavaScript Object Notation) en un objet personnalisé PSObject ou Hashtable qui possède 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. L’applet de commande ajoute les propriétés au nouvel objet, car elle traite chaque ligne de la chaîne JSON.
La norme JSON autorise les noms de clés en double, qui sont interdits dans les types PSObject et Hashtable. 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.
Remarque
Dans Windows PowerShell 5.1, ConvertFrom-Json retourne une erreur lorsqu’elle rencontre un commentaire JSON. Dans PowerShell 6 et versions ultérieures, l’applet de commande prend en charge JSON avec des commentaires. Les commentaires JSON ne sont pas capturés dans les objets générés par l’applet de commande. Pour plus d'informations, consultez la section Commentaires JSON de l'article about_Comments.
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 -Raw JsonFile.json | ConvertFrom-Json
La commande utilise Get-Content applet de commande pour obtenir les chaînes dans un fichier JSON. Le paramètre Raw retourne le fichier entier sous la forme d’un seul objet 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 rediriger 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
String
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 .
Le type PSObject conserve l’ordre des propriétés comme indiqué dans la chaîne JSON. Bien que les paires clé-valeur soient ajoutées dans l’ordre présenté dans la chaîne JSON à la table de hachage , les objets de la table de hachage ne conservent pas cet ordre.