Partager via


ConvertTo-Json

Convertit un objet en une chaîne au format JSON.

Syntaxe

ConvertTo-Json
              [-InputObject] <Object>
              [-Depth <Int32>]
              [-Compress]
              [<CommonParameters>]

Description

L’applet ConvertTo-Json de commande convertit tout objet .NET en chaîne au format JSON (JavaScript Object Notation). Les propriétés sont converties en noms de champs et les valeurs de champ en valeurs de propriété, tandis que les méthodes sont supprimées.

Vous pouvez ensuite utiliser l’applet ConvertFrom-Json de commande pour convertir une chaîne au format JSON en objet JSON, qui est facilement géré dans PowerShell.

De nombreux sites web utilisent JSON au lieu de XML pour sérialiser les données en vue de la communication entre les serveurs et les applications basées sur le web.

Cette applet de commande a été introduite dans Windows PowerShell 3.0.

Exemples

Exemple 1

(Get-UICulture).Calendar | ConvertTo-Json

{
    "MinSupportedDateTime":  "\/Date(-62135596800000)\/",
    "MaxSupportedDateTime":  "\/Date(253402300799999)\/",
    "AlgorithmType":  1,
    "CalendarType":  1,
    "Eras":  [
                 1
             ],
    "TwoDigitYearMax":  2029,
    "IsReadOnly":  false
}

Cette commande utilise l’applet ConvertTo-Json de commande pour convertir un objet GregorianCalendar en chaîne au format JSON.

Exemple 2

@{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress

{"Domain":"Domain01","Account":"User01","Admin":"True"}

Cette commande montre l’effet de l’utilisation du paramètre Compress de ConvertTo-Json. La compression affecte uniquement l'aspect de la chaîne, pas sa validité.

Exemple 3

Get-Date | Select-Object -Property * | ConvertTo-Json

{
    "DisplayHint":  2,
    "DateTime":  "Friday, January 13, 2012 8:06:16 PM",
    "Date":  "\/Date(1326441600000)\/",
    "Day":  13,
    "DayOfWeek":  5,
    "DayOfYear":  13,
    "Hour":  20,
    "Kind":  2,
    "Millisecond":  221,
    "Minute":  6,
    "Month":  1,
    "Second":  16,
    "Ticks":  634620819762218083,
    "TimeOfDay":  {
                      "Ticks":  723762218083,
                      "Days":  0,
                      "Hours":  20,
                      "Milliseconds":  221,
                      "Minutes":  6,
                      "Seconds":  16,
                      "TotalDays":  0.83768775241087956,
                      "TotalHours":  20.104506057861109,
                      "TotalMilliseconds":  72376221.8083,
                      "TotalMinutes":  1206.2703634716668,
                      "TotalSeconds":  72376.22180829999
                  },
    "Year":  2012
}

Cet exemple utilise l’applet ConvertTo-Json de commande pour convertir un objet System.DateTime de l’applet Get-Date de commande en chaîne au format JSON. La commande utilise l’applet Select-Object de commande pour obtenir toutes les* propriétés de l’objet DateTime . La sortie affiche la chaîne JSON retournée ConvertTo-Json .

Exemple 4

Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

DisplayHint : 2
DateTime    : October 12, 2018 10:55:52 PM
Date        : 2018-10-12 12:00:00 AM
Day         : 12
DayOfWeek   : 5
DayOfYear   : 285
Hour        : 22
Kind        : 2
Millisecond : 768
Minute      : 55
Month       : 10
Second      : 52
Ticks       : 636749817527683372
TimeOfDay   : @{Ticks=825527683372; Days=0; Hours=22; Milliseconds=768; Minutes=55; Seconds=52;
              TotalDays=0.95547185575463; TotalHours=22.9313245381111; TotalMilliseconds=82552768.3372;
              TotalMinutes=1375.87947228667; TotalSeconds=82552.7683372}
Year        : 2018

Cet exemple montre comment utiliser les ConvertTo-Json applets de commande et ConvertFrom-Json les applets de commande pour convertir un objet en chaîne JSON et un objet JSON.

Paramètres

-Compress

Omet les espaces blancs et la mise en forme en retrait dans la chaîne de sortie.

Type:SwitchParameter
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Depth

Spécifie le nombre de niveaux d'objets contenus inclus dans la représentation JSON. La valeur peut être n’importe quel nombre de 1 vers 100. La valeur par défaut est 2. ConvertTo-Json émet un avertissement si le nombre de niveaux d’un objet d’entrée dépasse ce nombre.

Type:Int32
Position:Named
Valeur par défaut:2
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InputObject

Spécifie les objets à convertir au format JSON. Entrez une variable contenant les objets, ou tapez une commande ou une expression qui obtient ces objets. Vous pouvez également diriger un objet vers ConvertTo-Json.

Le paramètre InputObject est obligatoire, mais sa valeur peut être null ($null) ou une chaîne vide. Lorsque l’objet d’entrée est $null, ConvertTo-Json ne génère aucune sortie. Lorsque l’objet d’entrée est une chaîne vide, ConvertTo-Json retourne une chaîne vide.

Type:Object
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

Object

Vous pouvez diriger n’importe quel objet vers cette applet de commande.

Sorties

String

Cette applet de commande retourne une chaîne représentant l’objet d’entrée converti en chaîne JSON.

Notes

L’applet ConvertTo-Json de commande est implémentée à l’aide de la classe JavaScriptSerializer.