Partager via


ConvertTo-Json

Convertit un objet en chaîne au format JSON.

Syntaxe

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

Description

La cmdlet ConvertTo-Json convertit n’importe quel objet en chaîne au format JSON (JavaScript Object Notation). Les propriétés sont converties en noms de champs, les valeurs de champ sont converties en valeurs de propriété et les méthodes sont supprimées.

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

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

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

Exemples

Exemple 1

PS C:\> (Get-UICulture).Calendar | ConvertTo-Json

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

Cet exemple utilise la cmdlet ConvertTo-Json pour convertir un objet GregorianCalendar en chaîne au format JSON.

Exemple 2

PS C:\> @{Account="User01";Domain="Domain01";Admin="True"} | ConvertTo-Json -Compress

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

Cet exemple montre l’effet de l’utilisation du paramètre -Compress de ConvertTo-Json. La compression affecte uniquement l’apparence de la chaîne, et non sa validité.

Exemple 3

PS C:\> 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 de commande ConvertTo-Json pour convertir un objet System.DateTime à partir de l’applet de commande Get-Date en chaîne au format JSON. La commande utilise l’applet de commande Select-Object pour obtenir toutes les propriétés de l’objet DateTime (). La sortie affiche la chaîne JSON qui ConvertTo-Json retournée.

Exemple 4

PS C:\> Get-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json

DisplayHint : 2
DateTime    : Saturday, October 13, 2018 3:28:40 AM
Date        : 10/13/2018 12:00:00 AM
Day         : 13
DayOfWeek   : 6
DayOfYear   : 286
Hour        : 3
Kind        : 2
Millisecond : 346
Minute      : 28
Month       : 10
Second      : 40
Ticks       : 636749981203464381
TimeOfDay   : @{Ticks=125203464381; Days=0; Hours=3; Milliseconds=346; Minutes=28; Seconds=40;
              TotalDays=0.14491141710763888; TotalHours=3.4778740105833332; TotalMilliseconds=12520346.4381;
              TotalMinutes=208.67244063500002; TotalSeconds=12520.3464381}
Year        : 2018

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

Paramètres

-Compress

Omet l’espace blanc et la mise 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 par défaut est 2.

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 qui contient les objets, ou tapez une commande ou une expression qui obtient les objets. Vous pouvez également diriger un objet vers ConvertTo-Json .

Le paramètre InputObject est requis, 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 ConvertTo-Json .

Sorties

String

Notes

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